input validation (in progress)