Cambios de Daniel
Se cambiaron varias implementaciones viniendo del branch de Daniel