Refactoring to separate reusable validators into a package

Whoever merges this, check it makes sense as I may be horribly abusing overriding of classes.