se agregan comentarios y se cambia el nombre de algunas funciones por unos menos abstractos.