Validation refactor