     
     dataSource.beginUpdatesSignal.subscribeNext { [weak self] in
       self?.updateActions.removeAll()
-    }.putInto(pool)
+      }.putInto(pool)
     
     dataSource.endUpdatesSignal.subscribeNext { [weak self] in
       guard let strongSelf = self else { return }
       strongSelf.updateActions.forEach { $0() }
-    }.putInto(pool)
+      }.putInto(pool)
     
     dataSource.reloadDataSignal.subscribeNext { [weak self] in
       guard let strongSelf = self else { return }

  
  public func collectionView(collectionView: UICollectionView, didEndDisplayingSupplementaryView view: UICollectionReusableView, forElementOfKind elementKind: String, atIndexPath indexPath: NSIndexPath) {
    willEndDisplayingSupplementaryView.sendNext((view, elementKind, indexPath))
  }
  
  public override func respondsToSelector(aSelector: Selector) -> Bool {
    if aSelector == #selector(collectionView(_:viewForSupplementaryElementOfKind:atIndexPath:)) {
      return viewForSupplementaryViewOfKindMatching != nil
    } else {
      return super.respondsToSelector(aSelector)
    }
  }
  
  public func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

      default:
        break
      }
      }.putInto(pool)
  }
  
  public func registerCellClass<U: ObjectConsuming where U.ObjectType == ObjectType>(cellClass: U.Type) {
