Refactoring: IODispatcher and IODispatcherAsync separated