         }
     }
 
-    fileprivate func assignBubbleHeight(_ cellItem: StreamCellItem, _ webHeight: CGFloat) -> CGFloat {
+    fileprivate func calculateBubbleHeight(_ cellItem: StreamCellItem, _ webHeight: CGFloat) -> CGFloat {
         var totalHeight = webHeight
         totalHeight += ArtistInviteBubbleCell.Size.bubbleMargins.top
         totalHeight += ArtistInviteBubbleCell.Size.headerImageHeight

        let calculatedHeight: CGFloat?
        switch cellItem.type {
        case .artistInviteBubble:
            calculatedHeight = assignBubbleHeight(cellItem, webHeight)
        case .artistInviteControls:
            calculatedHeight = assignControlsHeight(cellItem, webHeight, hasCurrentUser: job.hasCurrentUser)
        case .artistInviteGuide:
            calculatedHeight = assignGuideHeight(cellItem, webHeight)
        default:
            calculatedHeight = nil
        }

        return totalHeight
    }

    fileprivate func calculateControlsHeight(_ cellItem: StreamCellItem, _ webHeight: CGFloat, hasCurrentUser: Bool) -> CGFloat {
        let isOpen: Bool
        if let artistInvite = cellItem.jsonable as? ArtistInvite {
            isOpen = artistInvite.status == .open
