add user input functionality