refactoring and improvement to Kv
added NoCache and some better cache handling