extract inner class MainReactor from NioFetcher to be a top-level class