key-value store with version number