1. use std::pair for normal kv pair 2. change signature of pointerkey template 3. add accessors in treenode and use them instead of call kv.accessors 4. the main insert method signatures are (Key, Data), instead of (std::pair<Key,Data>)
change the test case according to Paul's comment