Updated input function