First pass - still need to fix read and sort out position tracking in the content generator