             return UITableViewCell()
         }
 
-        switch section {
-
-        case .SkillUsers:
-            let cell = tableView.dequeueReusableCellWithIdentifier(feedSkillUsersCellID) as! FeedSkillUsersCell
-            return cell
-
-        case .UploadingFeed:
-            return UITableViewCell()
-
-        case .Feed:
-            let feed = feeds[indexPath.row]
+        func cellForFeed(feed: DiscoveredFeed) -> UITableViewCell {
 
             switch feed.kind {
 

            return
        }

        switch section {

        case .SkillUsers:

            guard let cell = cell as? FeedSkillUsersCell else {
                break
            }

            cell.configureWithFeeds(feeds)

        case .UploadingFeed:
            break

        case .Feed:

            let feed = feeds[indexPath.row]

            guard let cell = cell as? FeedBasicCell else {
                break
            }

            cell.tapAvatarAction = { [weak self] cell in

                let cell = tableView.dequeueReusableCellWithIdentifier(feedBasicCellID) as! FeedBasicCell
                return cell
            }
        }

        switch section {

        case .SkillUsers:

            let cell = tableView.dequeueReusableCellWithIdentifier(feedSkillUsersCellID) as! FeedSkillUsersCell
            return cell

        case .UploadingFeed:

            let feed = uploadingFeeds[indexPath.row]
            return cellForFeed(feed)

        case .Feed:

            let feed = feeds[indexPath.row]
            return cellForFeed(feed)

        case .LoadMore:

            let cell = tableView.dequeueReusableCellWithIdentifier(loadMoreTableViewCellID) as! LoadMoreTableViewCell
            return cell
        }
