Implemented some of the event cases.  Created an IO device and a Device interface to clean things up.