updated validators and requirements. some refactoring