Refactorizado para la revision 3