 	
 	func goToNextUnread() {
 		
-		guard let row = rowContainingNextUnread() else {
+		guard let row = nextSelectableRowWithUnreadArticle() else {
 			assertionFailure("goToNextUnread called before checking if there is a next unread.")
 			return
 		}

		return false
	}

	func rowContainingNextUnread() -> Int? {
		
		let selectedRow = outlineView.selectedRow
		let numberOfRows = outlineView.numberOfRows
		var row = selectedRow + 1
		
		while (row < numberOfRows) {
			if rowHasAtLeastOneUnreadArticle(row) {
				return row
			}
			row += 1

		
		row = 0
		while (row <= selectedRow) {
			if rowHasAtLeastOneUnreadArticle(row) && !rowIsGroupItem(row) {
				return row
			}
			row += 1
