refactor validators for cat 1

Refactor validators so they have the same parameters for validation and refactor common code into a module. Clean up how test executions are done for cat 1 (cat 3 needs more work)
What is the difference between this method and `String.upcase`?