 // MARK: - ====== Abstract Cell Protocol ======
 public protocol AbstractCellProtocol {
     
-    func fillWithViewModel(_ viewModel: AbstractViewModel)
+    func fillWithViewModel(_ viewModel: AbstractViewModel?)
     weak var viewModel: AbstractViewModel? {get set}
     weak var delegat: NSObject? {get set}
     

open class AbstractCollectionViewCell : UICollectionViewCell, AbstractCellProtocol, ObserverModelProtocol{
    
    open weak var delegat: NSObject?
    open weak var viewModel: AbstractViewModel?{
        didSet {
            oldValue?.unregisterObserver(self)
            viewModel?.registerObserver(self)
        }
    }
    
    
    open func fillWithViewModel(_ viewModel: AbstractViewModel) {
        
    }
    

        didSet {
            oldValue?.unregisterObserver(self)
            viewModel?.registerObserver(self)
            self.fillWithViewModel(viewModel)
        }
    }
    
    // MARK: Abstract Cell Protocol Methods
    open func fillWithViewModel(_ viewModel: AbstractViewModel?) {
        
    }
    
