refactor executor