allllmost had custom validation messages, but order of operations booooo