   }
   
   public func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
-    didSelectCellSignal.sendNext(cell: collectionView.cellForItemAtIndexPath(indexPath), object: dataSource.objectAtIndexPath(indexPath))
+    didSelectCell.sendNext((
+      collectionView.cellForItemAtIndexPath(indexPath)!,
+      indexPath,
+      dataSource.objectAtIndexPath(indexPath)!)
+    )
   }
 }

    let identifier = nibNameForObjectMatching(dataSource.objectAtIndexPath(indexPath)!)
    
    if let cell = instances[identifier] as? SizeCalculatingCell {
      willCalculateSizeSignal.sendNext((instances[identifier]!, indexPath))
      return cell.sizeFor(dataSource.objectAtIndexPath(indexPath))
    }
    

      checkable.checked = checkedIndexPaths.contains(indexPath)
    }

    willDisplayCell.sendNext((cell, indexPath))
  }
  
  public func collectionView(collectionView: UICollectionView, didEndDisplayingCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {
