auto: visit, but don't traverse, upto pred
auto: properly thread pick_states sets