   }
 
   public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-    return views.count
+    return source.count
   }
 
   public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 
-    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)
-
-    let view = views[indexPath.item]
+    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: source[indexPath.item].1, for: indexPath)
+
+    let view = source[indexPath.item].0
 
     if view.superview == cell.contentView {
       return cell

  }

  open func scroll(to view: UIView, at position: UICollectionViewScrollPosition, animated: Bool) {
    if let index = views.index(of: view) {
      scrollToItem(at: IndexPath(item: index, section: 0), at: position, animated: animated)
    }
  }

    }

    view.translatesAutoresizingMaskIntoConstraints = false
    cell.contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

    cell.contentView.addSubview(view)
