get rid of boost for higher level things, use own serialisation with header and lookup table. still use boost archives for lower level serialisation to keep simple stl container use and serialise methods.
importantly will improve backward access speed and terrible nesting inefficiency.