Refactor to distribute scheduling decisions across Agents