add kv support