Vast majority of it is done.  Needs testing.

Ask me if you have any questions.