Lots of changes

I've obviously been messing around with it a lot.  I'll have some specific questions for you later today, as soon as I've wrapped up the documentation.