   
   public var nibNameForObjectMatching: (ObjectType -> String)!
   
-  public let didSelectCellSignal = Pipe<(cell: UICollectionViewCell?, object: ObjectType?)>()
-  public let willDisplayCellSignal = Pipe<(UICollectionViewCell, NSIndexPath)>()
-  public let willCalculateSizeSignal = Pipe<(UICollectionViewCell, NSIndexPath)>()
+  public let didSelectCell = Pipe<(UICollectionViewCell, NSIndexPath, ObjectType)>()
+  public let willDisplayCell = Pipe<(UICollectionViewCell, NSIndexPath)>()
+  public let willCalculateSize = Pipe<(UICollectionViewCell, NSIndexPath)>()
   public let didEndDisplayingCell = Pipe<(UICollectionViewCell, NSIndexPath)>()
-  public let willSetObjectSignal = Pipe<(UICollectionViewCell, NSIndexPath)>()
-  public let didSetObjectSignal = Pipe<(UICollectionViewCell, NSIndexPath)>()
+  public let willSetObject = Pipe<(UICollectionViewCell, NSIndexPath)>()
+  public let didSetObject = Pipe<(UICollectionViewCell, NSIndexPath)>()
   
   public var checkedIndexPaths = [NSIndexPath]() {
     didSet {

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

    identifiersForIndexPaths[indexPath] = identifier

    
    willSetObject.sendNext((cell, indexPath))
    let mapping = mappings[identifier]!
    mapping(object, cell, indexPath)
    didSetObject.sendNext((cell, indexPath))
    
    return cell
  }
