Separated out all the model methods.

With a fucking shitload of duplication.
Partitioned up thread factory.
Refactored away the last of the adapter classes.