pulled KeyValueStore into a bunch of different interfaces