Adding Runner#services usage

Instead of encoding much of the behavior, push that information down
to a lower level.