add handle_input() implementation