     
     //MARK:- Private
     
-    fileprivate func addEmptyView() {
+    private func addEmptyView() {
         
         guard let emptyConfiguration = self.emptyConfiguration else {
             return


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

    }
}

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