implement the second draft of ExecutorAdapter