Adding constraints to validators, moving things to traits