forgot about the func sig change on get_targets_for_step()
don't cache single a single target, that is just plain wrong
changed what is returned as well