ThreadFetcher now uses ConnectionDetector and delegates to CacheOperation