Pull request for handling user input!

Two commits soon to be followed by a few more TODO's I need to deal with and test.