better error handling and input validating