     bottomOverlayGradient.frame = CGRect(x: 0, y: collectionView.frame.maxY, width: bounds.width, height: bottomOverylayHeight)
   }
   
-  public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
-    return false
-  }
+//  public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
+//    return true
+//  }
   
 }
 

    let space = config.cardsSpacing
    let cellFrame = CGRect(x: minX, y: collectionView.frame.minY, width: config.cardsSize.width, height: config.cardsSize.height)
    
    let oldRightSideNewPosition = CGPoint(x: bounds.width, y: cellFrame.minY)
    let oldRightSideNewValue = AnimationValue.position(oldRightSideNewPosition)
    
    var delay: Double = 0
    if animationInProcess {
      delay = duration / 3.5
      if let layer = self.newRightSideLayer {
        layer.position = layer.presentation()?.position ?? CGPoint(x: cellFrame.maxX + space, y: cellFrame.minY)
        animate(layer, newValue: oldRightSideNewValue, item: AnimationItem.newRightSide, duration: duration * 1.5, delay: 0, index: expandedItemIndex)
        
        let id = "newCellWrapper,\(expandedItemIndex)"
        if let anilayer = animationLayersDictionary[id] {
          anilayer.layer.removeFromSuperlayer()
        }
      }
    }
    
    lastDirection = direction

      let up = location.y > gestureStartPosition.y
      
      let range = abs(location.y - gestureStartPosition.y)
      let decelerating = collectionView.isDecelerating
      let numberOfItems = dataSource?.numberOfItems(in: self) ?? 0
      if (expandedItemIndex == 0 && up) || (expandedItemIndex == numberOfItems - 1 && !up), !animationInProcess, !decelerating {
        let y = collectionView.frame.minY
        if gestureTranslation == 0 {
          gestureTranslation = y
