version funcional, falta comentar y adornar pero funciona