key-value abstraction layer