catches bad input