error handling
clientside input validation