A persistent multi-version map: explicit map creation; change map factory to become just a factory for data types again