 
     var data: Any? {
         switch self {
+        case let .artistInviteGuide(data): return data
         case let .embed(data): return data
+        case let .header(data): return data
         case let .image(data): return data
+        case let .tallHeader(data): return data
         case let .text(data): return data
-        case let .header(data): return data
-        case let .tallHeader(data): return data
-        case let .artistInviteGuide(data): return data
         default: return nil
         }
     }


    var isFullWidth: Bool {
        switch self {
        case .badge,
             .categoryPromotionalHeader,
             .categoryList,
             .createComment,
             .fullWidthSpacer,
             .inviteFriends,
             .onboardingInviteFriends,
             .emptyStream,
             .loadMoreComments,
             .noPosts,
             .notification,
             .pagePromotionalHeader,
             .announcement,
             .artistInviteBubble,
             .artistInviteHeader,
             .artistInviteSubmissionsButton,
             .artistInviteControls,
             .artistInviteGuide,
             .editorial,
             .profileHeader,
             .profileHeaderGhost,
             .search,
             .seeMoreComments,
             .streamLoading,
             .header,
             .tallHeader,
             .userAvatars,
             .userListItem:
            return true
        case .categoryCard,
             .selectableCategoryCard,
             .commentHeader,
             .embed,
             .streamFooter,
             .streamHeader,
             .image,
             .placeholder,
             .spacer,
             .text,
             .toggle,
             .unknown:


    var classType: UICollectionViewCell.Type {
        switch self {
        case .announcement: return AnnouncementCell.self
        case .artistInviteBubble: return ArtistInviteBubbleCell.self
        case .artistInviteControls: return ArtistInviteControlsCell.self
        case .artistInviteGuide: return ArtistInviteGuideCell.self
        case .artistInviteHeader: return ArtistInviteHeaderCell.self
        case .artistInviteSubmissionsButton: return ArtistInviteSubmissionsButtonCell.self
        case .badge: return BadgeCell.self
        case .categoryCard: return CategoryCardCell.self
        case .categoryList: return CategoryListCell.self
        case .categoryPromotionalHeader, .pagePromotionalHeader: return CategoryHeaderCell.self
        case .commentHeader, .streamHeader: return StreamHeaderCell.self
        case .createComment: return StreamCreateCommentCell.self
        case let .editorial(kind): return kind.classType
        case .embed: return StreamEmbedCell.self
        case .emptyStream: return EmptyStreamCell.self
        case .header: return TextHeaderCell.self
        case .image: return StreamImageCell.self
        case .inviteFriends, .onboardingInviteFriends: return StreamInviteFriendsCell.self
        case .loadMoreComments: return StreamLoadMoreCommentsCell.self
        case .noPosts: return NoPostsCell.self
        case .notification: return NotificationCell.self
        case .placeholder: return UICollectionViewCell.self
        case .profileHeader: return ProfileHeaderCell.self
        case .profileHeaderGhost: return ProfileHeaderGhostCell.self
        case .search: return SearchStreamCell.self
        case .seeMoreComments: return StreamSeeMoreCommentsCell.self
        case .selectableCategoryCard: return CategoryCardCell.self
        case .streamFooter: return StreamFooterCell.self
        case .streamLoading: return StreamLoadingCell.self
        case .tallHeader: return TextHeaderCell.self
        case .text: return StreamTextCell.self
        case .toggle: return StreamToggleCell.self
        case .unknown, .spacer, .fullWidthSpacer: return UICollectionViewCell.self
        case .userAvatars: return UserAvatarsCell.self
