 			NSLocalizedString("Unstar", comment: "Unstar") :
 			NSLocalizedString("Star", comment: "Star")
 		
-		let starAction = UIContextualAction(style: .normal, title: starTitle) { (action, view, completionHandler) in
-			markArticles(Set([article]), statusKey: .starred, flag: !article.status.starred)
+		let starAction = UIContextualAction(style: .normal, title: starTitle) { [weak self] (action, view, completionHandler) in
+			guard let undoManager = self?.undoManager,
+				let markReadCommand = MarkStatusCommand(initialArticles: [article], markingStarred: !article.status.starred, undoManager: undoManager) else {
+					return
+			}
+			self?.runCommand(markReadCommand)
 			completionHandler(true)
 		}
 		

		
		let markTitle = NSLocalizedString("Mark All Read", comment: "Mark All Read")
		let markAction = UIAlertAction(title: markTitle, style: .default) { [weak self] (action) in
			guard let articles = self?.articles else { return }
			markArticles(Set(articles), statusKey: .read, flag: true)
		}
		alertController.addAction(markAction)
		

		}
	}
	
	override var canBecomeFirstResponder: Bool {
		return true
	}
	
	override func viewDidLoad() {
		
		super.viewDidLoad()
