moved validation failure behaviour out of validation functions and into the main validation loop of execution. Much more extensible now in terms of adding more validation functions