version final y FUNCIONAL =D