See more information at Gabriel Monge-Franco's home page: http://gabriel.mongefranco.com.