A little bit more preparatory refactoring.
Yet more refactoring.
Compiling the HMC module.
HMC is still in-progress and very much in a broken state, but I'm about to make some big changes.