implementation of KVClient