Refinement

Refined much of the data model and interface. You'll see more detailed PR messages once this gets off the ground.