Executor is an interface instead of a struct