gh-935

**not ready for merge**

Right now this takes care of generating the right output format - consuming it is another matter
I think this is fine for `0.5.0`. I'd like to switch to lazy load next release anyway and there won't need to be much init/extend logic here.