 	func representedObjectsContainsTodayFeed() -> Bool {
 		return representedObjects?.contains(where: { $0 === SmartFeedsController.shared.todayFeed }) ?? false
 	}
-	
+
+	func representedObjectsContainAnyFolder() -> Bool {
+		return representedObjects?.contains(where: { $0 is Folder }) ?? false
+	}
+
 	func representedObjectsContainsAnyFeed(_ feeds: Set<Feed>) -> Bool {
 
 		// Return true if there’s a match or if a folder contains (recursively) one of feeds

	}

	func replaceArticles(with unsortedArticles: Set<Article>) {
		// Since there may be transients in a smart feed,
		// make sure each article is in a feed that’s still
		// subscribed-to.
		let filteredArticles = unsortedArticles.filter(articleIsInSubscribedToFeed)
		let sortedArticles = Array(filteredArticles).sortedByDate(sortDirection)
		if articles != sortedArticles {
			articles = sortedArticles
		}
	}

	func articleIsInSubscribedToFeed(_ article: Article) -> Bool {
		guard let account = article.account, let feed = article.feed else {
			return false
		}
		return account.has(feed)
	}

	func fetchUnsortedArticlesSync(for representedObjects: [Any]) -> Set<Article> {

		}
	}

	@objc func containerChildrenDidChange(_ note: Notification) {
		if representedObjectsContainsAnyPseudoFeed() || representedObjectsContainAnyFolder() {
			fetchAndReplaceArticlesAsync()
		}
	}

	@objc func userDefaultsDidChange(_ note: Notification) {

		self.fontSize = AppDefaults.timelineFontSize
