refactor Executor