finish part 1 of restruct

restructured whole selection stuff. able to cleanly temporary select kv
elements now.
now can move on to implement perm selection mechanism