added more validations
added buncho tests