Some more progress on fleshing it out; still feeling out the internal architecture.