Using a global observer, rather than a global list of observers
Inputfunctions now a real class.
Other things. Investigate further.