make shelve properly update the predicate_picker WIP: pick and unpick should do so too