         headerDescription = articleSummary?.wikidataDescription
         leadImageURL = articleSummary?.imageURL(forWidth: Self.leadImageSideLength * Int(UIScreen.main.scale))
         
-        if let otherContent = items.first?.otherContent,
-           !otherContent.isEmpty {
-               coffeeRollText = items.first?.otherContent
+        if let coffeeRollResult = coffeeRollFromItems(items) {
+            coffeeRollText = coffeeRollResult.0.otherContent
         } else {
             coffeeRollText = nil
         }


    /// Clean up talk page items so that we can more easily translate them into view models
    ///
    /// The talk page response returns items in a tree structure. To simplify the response to more closely match our design, we are flattening the items into one top-level list of topics, each with one level of replies. We also clear out any topics that we are not set up to display yet (unsigned topic content, topics without titles).
    func cleanTalkPageItems(items: [TalkPageItem]) -> [TalkPageItem] {
        let topics = self.removingSubtopics(items: items)
        let validTopics = self.validTopLevelTopics(items: topics)

        return topicsWithFlattenedReplies
    }
    
    /// Method to seek out coffee roll item from an array of talk page items
    /// - Parameter items: Array of talk page items
    /// - Returns: Tuple containing the coffee roll talk page item and the index where it appears in the array
    func coffeeRollFromItems(_ items: [TalkPageItem]) -> (TalkPageItem, Int)? {
        if let firstItem = items.first {
            let otherContent = firstItem.otherContent ?? ""
            let title = firstItem.html ?? ""
            if firstItem.type == .heading && firstItem.replies.isEmpty && title.isEmpty && !otherContent.isEmpty {
                return (firstItem, 0)
            }
        }
            
        return nil
    }
    
    func validTopLevelTopics(items: [TalkPageItem]) -> [TalkPageItem] {
        
        // Trim first item if it indicates it's a coffee roll:
        if let coffeeRollResult = coffeeRollFromItems(items) {
            var finalItems = items
            finalItems.remove(at: coffeeRollResult.1)
            return finalItems
        }
        
        return items
    }
    
    func recursivelyFlattenReplies(items: [TalkPageItem], flattenedItems: inout [TalkPageItem]) {
