first draft

This is what I've got so far, I haven't even tried to compile it yet, let alone run it, but wanted to share what I've got before the weekend.