event now uses initialisation-lists for on(), returns a list of handles to detach bound events later
keydown only triggers if the key isn't already down
windows now have their own thread/engine, win32 message loop now an evergreen task