The HID interface currently uses init functions to establish a relationship between the run-time and the devices being interfaced with. This is both expensive (users who don't use the keyboard still need to pay for it), and terrible style.
They need to be replaced with constructors, but I can't figure out how to properly do it for these two interfaces.