factor hostFetcher out of Fetcher; hostFetcher does the work for a single host, Fetcher manages hostFetchers