Completely revamped the validation methods to be in line with the validation dsl