     }
     
     public init(kind: String,
-                supplementaryConfiguration: @escaping ((T, String, IndexPath) -> Void),
+                supplementaryConfiguration: @escaping ((T, U, IndexPath) -> Void),
                 mapping: ((ViewModelMapping<T, U>) -> Void)?)
         where T: UICollectionReusableView
     {

                        
                        if let nibName = self.xibName, UINib.nibExists(withNibName: nibName, inBundle: self.bundle) {
                            registration = .init(cellNib: UINib(nibName: nibName, bundle: self.bundle), handler: { cell, indexPath, model in
                                cellConfiguration(cell, indexPath, model)
                            })
                        } else {
                            registration = .init(handler: { cell, indexPath, model in
                                cellConfiguration(cell, indexPath, model)
                            })
                        }
                        return collectionView.dequeueConfiguredReusableCell(using: registration, for: indexPath, item: model)
                    #else
                        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: self.reuseIdentifier, for: indexPath)
                    if let cell = cell as? T {
                            cellConfiguration(cell, indexPath, model)
                        }
                        return cell
                    #endif
                } else {
                    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: self.reuseIdentifier, for: indexPath)
                    if let cell = cell as? T, let model = model as? T.ModelType {
                        cellConfiguration(cell, indexPath, model)
                    }
                    return cell
                }

        mappingBlock?(self)
    }
    
    public init(cellConfiguration: @escaping ((T, U, IndexPath) -> Void),
                          mapping: ((ViewModelMapping<T, U>) -> Void)?)
        where T: UICollectionViewCell
    {
