 
     public func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
         let cell = collectionView.cellForItemAtIndexPath(indexPath)!
-        let component = self.itemCompontentForIndexPath(indexPath, cell: cell)
+        let component = self.itemComponentForIndexPath(indexPath, cell: cell)
         self.didSelectComponent(component)
     }
 

        let item = self.itemForIndexPath(indexPath)
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(item.controller.computedViewIdentifier, forIndexPath: indexPath) as! ItemViewCell
        cell.nestedView = item.controller.viewForItem(item, reusingView: cell.nestedView)
        let component = self.itemCompontentForIndexPath(indexPath, cell: cell)
        component.attach()
        return cell
    }

    public func collectionView(collectionView: UICollectionView, didEndDisplayingCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {
        let component = self.itemCompontentForIndexPath(indexPath, cell: cell)
        component.detach()
    }



        let view = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: supplementary.controller.computedViewIdentifier, forIndexPath: indexPath) as! ItemReusableView
        view.nestedView = supplementary.controller.viewForSupplementary(supplementary, reusingView: view.nestedView)
        guard let component = self.supplementaryComponentOfCollectionViewKind(kind, forSection: indexPath.section, view: view) else {
            return view
        }
        component.attach()
