add error handling and validation