Refactored from generic prototypes to classes and generics.
Staring work on InMemoryDataStore.