implementing the get_input, and some more minor stuff