user input handle