Slight structure rework. Docs to follow.