implement kvstore draft