More refactor, but problem with a validation
Refactor but still needs to make it better