i don't think there is a need to recurse through all the targets, we can
just delegate to the parser when we need to find some targets for a
given step.