Refactoring Input

This should, among others, simplify the life for @tomtrenki23 , as he is trying to work towards #11. 
This also creates the basis for having some decorations on the GUI, as well as various other smaller improvements