input function upgrade