     }
 }
 
-extension UICollectionView {
-    fileprivate func performEditActions<T>(_ actions: [CollectionViewEditActionKind<T>]) {
+private extension UICollectionView {
+     func performEditActions<T>(_ actions: [CollectionViewEditActionKind<T>]) {
         performBatchUpdates({ 
             
             actions.forEach {


        collectionView.registerReusableCell(Cell.self)
        collectionView.dataSource = self
        collectionView.alwaysBounceVertical = true
        if let _ = self.reorderSupport {
            let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPressGesture))
            self.collectionView.addGestureRecognizer(longPressGesture)


public class CollectionViewDataSource<Cell:ViewModelReusable & UICollectionViewCell>: NSObject, UICollectionViewDataSource {
    
    public private(set) var data: [Cell.VM]
    public weak var collectionView: UICollectionView!
    public var emptyConfiguration: ErrorView.Configuration?
    public let reorderSupport: CollectionViewReorderSupport<Cell.VM>?
    private var emptyView: UIView?

    public init(data: [Cell.VM] = [],
                collectionView: UICollectionView,
                emptyConfiguration: ErrorView.Configuration? = nil,
