validation and error msg