With the SnapshotManager there are now 3 entities that need their data persisted (Config, Uninstaller, Snapshot). The only thing that differs is the persisted data type. All 3 use roughly the same logic to persist data.

I should make a PersistedData (subclassed by PersistedList, PersistedSet and PersistedMap) that automatically persist themselves in a given directory. Then everybody else just uses these as their state and don't have to write their own persistence code.

Watdcha say?