codigo totalmente funcional