Refactor grande para acomodar bien todas las validaciones y hacer mas
tests.