validations now generate relevant error messages