adding k/v support