more validation and error handling