custom user input