refactoring TimeoutExecutor