Primer version, necesita refactoreo