Overhaul executors to use context objects