version funcional, quizas falta rreglar algunos errores