refactor plan execution into an Executor class