[issue 1] added more validation rules and refactored Validator a bit