input validation and feedback