should this be an ordered std::map like leveldb?