Refactor existing validation code for reuse.
Add validations
Merge branch 'feature/AddValidations' into develop