added more types of validation