refactoring
separated constraints and validators in different folders