Abstracted out some validator functionality into the base validator. Added some more tests to ensure validator uniqueness (prep for allowing custom validators to be added and tested)