 
 public class CollectionViewDataSource<Cell:ViewModelReusable & UICollectionViewCell>: NSObject, UICollectionViewDataSource {
     
-    public fileprivate(set) var data: [Cell.VM]
+    public private(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>?
-    
+    private var emptyView: UIView?
+
     public init(data: [Cell.VM] = [],
                 collectionView: UICollectionView,
                 emptyConfiguration: ErrorView.Configuration? = nil,

    }
}

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

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