 extension SmartFeed: ArticleFetcher {
 
 	func fetchArticles() -> Set<Article> {
-
 		return delegate.fetchArticles()
 	}
 
 	func fetchUnreadArticles() -> Set<Article> {
-
 		return delegate.fetchUnreadArticles()
 	}
 }

	private var unreadCounts = [Account: Int]()

	init(delegate: SmartFeedDelegate) {

		self.delegate = delegate
		NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil)
		queueFetchUnreadCounts() // Fetch unread count at startup
	}

	@objc func unreadCountDidChange(_ note: Notification) {

		if note.object is Account {
			queueFetchUnreadCounts()
		}
	}

	@objc func fetchUnreadCounts() {

		AccountManager.shared.accounts.forEach { self.fetchUnreadCount(for: $0) }
	}
}

private extension SmartFeed {

	func queueFetchUnreadCounts() {
		CoalescingQueue.standard.add(self, #selector(fetchUnreadCounts))
	}

	func fetchUnreadCount(for account: Account) {
		delegate.fetchUnreadCount(for: account) { (accountUnreadCount) in
			self.unreadCounts[account] = accountUnreadCount
			self.updateUnreadCount()
