 		return menuItem(formattedMenuText as String, #selector(selectFeedInSidebarFromContextualMenu(_:)), feed)
 	}
 
-	func markAllAsReadMenuItem() -> NSMenuItem? {
-		guard canMarkAllAsRead() else {
-			return nil
-		}
-		
-		let menuText: String
-		if representedObjects?.count == 1, let nameProvider = representedObjects!.first! as? DisplayNameProvider {
-			let localizedMenuText = NSLocalizedString("Mark All as Read in \"%@\"", comment: "Command")
-			menuText = NSString.localizedStringWithFormat(localizedMenuText as NSString, nameProvider.nameForDisplay) as String
-		} else {
-			menuText = NSLocalizedString("Mark All as Read in Timeline", comment: "Command")
-		}
-		
-		return menuItem(menuText, #selector(markAllAsRead(_:)), representedObjects as Any)
+	func markAllAsReadMenuItem(_ feed: Feed) -> NSMenuItem? {
+		
+		let articles = Array(feed.fetchArticles())
+		guard articles.canMarkAllAsRead() else {
+			return nil
+		}
+		
+		let localizedMenuText = NSLocalizedString("Mark All as Read in \"%@\"", comment: "Command")
+		let menuText = NSString.localizedStringWithFormat(localizedMenuText as NSString, feed.nameForDisplay) as String
+		
+		return menuItem(menuText, #selector(markAllInFeedAsRead(_:)), articles)
 	}
 	
 	func openInBrowserMenuItem(_ urlString: String) -> NSMenuItem {

		
	}
	
	@objc func markAllAsRead(_ sender: Any?) {
		markAllAsRead()
	}
	
	@objc func openInBrowserFromContextualMenu(_ sender: Any?) {

		
		if articles.count == 1, let feed = articles.first!.feed {
			menu.addItem(selectFeedInSidebarMenuItem(feed))
			if let markAllMenuItem = markAllAsReadMenuItem(feed) {
				menu.addItem(markAllMenuItem)
			}
		}
		
		if articles.count == 1, let link = articles.first!.preferredLink {
