CODIGO FUNCIONANDO y con ejemplos de test
Se puede repasar para quitar cosas feas.