 			completion?()
 			return
 		}
-		
-		database.fetchUnreadCounts(for: webFeeds.webFeedIDs()) { unreadCountDictionaryResult in
-			if let unreadCountDictionary = try? unreadCountDictionaryResult.get() {
-				for webFeed in webFeeds {
-					if let unreadCount = unreadCountDictionary[webFeed.webFeedID] {
-						webFeed.unreadCount = unreadCount
+
+		if webFeeds.count == 1, let feed = webFeeds.first {
+			fetchUnreadCount(feed, completion)
+		}
+		else {
+			database.fetchUnreadCounts(for: webFeeds.webFeedIDs()) { unreadCountDictionaryResult in
+				if let unreadCountDictionary = try? unreadCountDictionaryResult.get() {
+					for webFeed in webFeeds {
+						if let unreadCount = unreadCountDictionary[webFeed.webFeedID] {
+							webFeed.unreadCount = unreadCount
+						}
 					}
 				}
-			}
-
-			completion?()
+
+				completion?()
+			}
 		}
 	}
 

		metadataFile.load()
		webFeedMetadataFile.load()
		opmlFile.load()
	}

	public func save() {

	}

	public func cancelDiscardableOperations() {
		for operationName in Self.discardableOperationNames {
			operationQueue.cancelOperations(named: operationName)
		}
	}
	
	func loadOPMLItems(_ items: [RSOPMLItem], parentFolder: Folder?) {
