start refactoring validation methods