WIP New validator

This still needs some comments and tests but the basic structure is there. Tear it up.
holy what. Could you pull these format strings out as constants please?