Split out agent, allow specify of puppet version