In the middle of a large rewrite.

I started taking complicated large classes apart to make the code more modular.