leaving self note about terrible gui code
factoring out device input to module
factoring out device input to module
giving events their own namespace
de-globalizing lots of stuff