     }
   }
 }
-
-private class InternalCollectionView: UICollectionView {
-  
-  open override func touchesShouldCancel(in view: UIView) -> Bool {
-    return true
-  }
-}

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

    
    backgroundColor = .white
    
    alwaysBounceVertical = true
    delaysContentTouches = false
    keyboardDismissMode = .interactive
    backgroundColor = .clear
    
    super.delegate = self
    super.dataSource = self
  }
  
  open override func touchesShouldCancel(in view: UIView) -> Bool {
    return true
  }

  open func append(view: UIView) {
    
    views.append(view)
    register(Cell.self, forCellWithReuseIdentifier: identifier(view))
    reloadData()
  }  
  
  open func append(views _views: [UIView]) {
    
    views += _views
    _views.forEach { view in
      register(Cell.self, forCellWithReuseIdentifier: identifier(view))
    }
    reloadData()
  }
  
  // TODO:
