Added a matching input validator and refactored all the validators and their tests for readability