         return self.loadingCell(collectionView: collectionView, indexPath: indexPath) as! T
     }
     
-    // MARK: Collections cells
     func noRecordsFoundCell(collectionView: UICollectionView, indexPath: IndexPath, text: String) -> CharacterDetailCollectionMessageCell {
         let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionMessageCell", for: indexPath) as! CharacterDetailCollectionMessageCell
         

        }
    }
    
    func loadMoreComics() {
        if self.comicsLoadMore == true {
            self.comicsLoadMore = false
            self.comicsOffset += 20
            
            if self.comicsCollection != nil {
                if self.comicsOffset >= self.comicsCollection.total! {
                    return
                }
            }
            
            self.loadCollectionList(characterId: self.character.id!, collectionType: "comics", offset: self.comicsOffset, completion: { (result) in
                if result != nil {
                    for item in (result?.items!)! {
                        self.comicsCollection.items!.append(item)
                    }
                }
                self.refreshCollectionView("comics", loadMore: true, loadError: false)
            })
        }
    }
    
    func loadMoreSeries() {
        if self.seriesLoadMore == true {
            self.seriesLoadMore = false
            self.seriesOffset += 20
            
            if self.seriesCollection != nil {
                if self.seriesOffset >= self.seriesCollection.total! {
                    return
                }
            }
            
            self.loadCollectionList(characterId: self.character.id!, collectionType: "series", offset: self.seriesOffset, completion: { (result) in
                if result != nil {
                    for item in (result?.items!)! {
                        self.seriesCollection.items!.append(item)
                    }
                }
                self.refreshCollectionView("series", loadMore: true, loadError: false)
            })
        }
    }
    
    func loadMoreStories() {
        if self.storiesLoadMore == true {
            self.storiesLoadMore = false
            self.storiesOffset += 20
            
            if self.storiesCollection != nil {
                if self.storiesOffset >= self.storiesCollection.total! {
                    return
                }
            }
            
            self.loadCollectionList(characterId: self.character.id!, collectionType: "stories", offset: self.storiesOffset, completion: { (result) in
                if result != nil {
                    for item in (result?.items!)! {
                        self.storiesCollection.items!.append(item)
                    }
                }
                self.refreshCollectionView("stories", loadMore: true, loadError: false)
            })
        }
    }
    
    func loadMoreEvents() {
        if self.eventsLoadMore == true {
            self.eventsLoadMore = false
            self.eventsOffset += 20
            
            if self.eventsCollection != nil {
                if self.eventsOffset >= self.eventsCollection.total! {
                    return
                }
            }
            
            self.loadCollectionList(characterId: self.character.id!, collectionType: "events", offset: self.eventsOffset, completion: { (result) in
                if result != nil {
                    for item in (result?.items!)! {
                        self.eventsCollection.items!.append(item)
                    }
                }
                self.refreshCollectionView("events", loadMore: true, loadError: false)
            })
        }
    }

        return numberOfItems
    }
    
    // MARK: Collections cells
    func getCell<T>(collectionView: UICollectionView, collection: Collection!, indexPath: IndexPath, loadError: Bool) -> T {
        if collection != nil {
            if collection.items!.count == 0 {
