 
         let view = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: supplementary.controller.computedViewIdentifier, for: indexPath) as! ItemReusableView
         view.nestedView = supplementary.controller.view(forSupplementary: supplementary, reusingView: view.nestedView)
-        guard let component = self.supplementaryCompontent(ofCollectionViewKind: kind, inSection: indexPath.section, with: view) else {
+        guard let component = self.supplementaryComponent(ofCollectionViewKind: kind, inSection: indexPath.section, with: view) else {
             return view
         }
         component.attach()

        let item = self.item(for: indexPath)
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: item.controller.computedViewIdentifier, for: indexPath) as! ItemViewCell
        cell.nestedView = item.controller.view(forItem: item, reusingView: cell.nestedView)
        let component = self.itemCompontent(for: indexPath, with: cell)
        component.attach()
        return cell
    }

    public func collectionView(_ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
        let component = self.itemCompontent(for: indexPath, with: cell)
        component.detach()
    }



    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let cell = collectionView.cellForItem(at: indexPath)!
        let component = self.itemComponent(for: indexPath, with: cell)
        self.didSelectComponent(component)
    }

