Code reorg

I made a bunch of changes, mostly changing the way things are wired up. Read over the README and take a look at the code. I left some comments in there. let me know if you have any questions.

I'll start thinking about how to drag pieces onto the board