I should have thought of that from the start - I've had to make an unbelievable amount of changes in code to achieve this.
This also gave me a chance to look over (ie, figure out) the month-old GUI code. Its really pretty complicated, now that I look back at it. I think my favorite moments were when I saw this, the hackish way the main GUI object binds itself to the EventAdapter (which acts as an abstracted interface between polling the system for events and converting those into my events). It could have been reduced in size with some typedefs, but meh. This way looks more intimidating.
The other part that made me lol was when I was debugging a bug which was causing the system to crash (an invalid iterator). I tracked the code down to a region which begins with the very helpful comment
to which I could only reply "LOL."