Agregando documentación en el código
Actualizado
Se comenta el código y se agregan referencias