Move validation logic to row-models and refactor out constants