Source: http://www.revistalatinacs.org/072paper/1225/RLCS-paper1225en.pdf