Implemented validations as stand alone objects that users can mess with if they want