cleaned imports
added null handling exceptions
cleaned code
refactored validator to property
added validators
added schema factory