user input analysis