first validation commit
created custom validation and added more validation tests as well as add and implement new DAO methods
added more tests, validation, and dao implementations