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

  }

  public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return views.count
  }

  public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)

    let view = views[indexPath.item]

    if view.superview == cell.contentView {
      return cell

    }

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

    cell.contentView.addSubview(view)
