     }
 
     @available(*, introduced:7.0)
-    public func dequeueReusableCell<T where T: UICollectionViewCell>(withReuseIdentifier identifier: String, for indexPath: IndexPath, configure: (T) -> Void) -> UICollectionViewCell {
+    public func dequeueReusableCell<T: UICollectionViewCell>(withReuseIdentifier identifier: String, for indexPath: IndexPath, configure: (T) -> Void) -> UICollectionViewCell {
         let reusableCell = dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath)
         guard let cell = reusableCell as? T else { return reusableCell }
         configure(cell)

//MARK: - UITableView Extension
public extension UITableView {
    @available(*, deprecated:7.0, renamed: "dequeueReusableCell(withIdentifier:configure:)")
    public func dequeueReusableCell<T where T: UITableViewCell>(withIdentifier identifier: String, to classType: T.Type, configure: (T) -> Void) -> T? {
        guard let cell = dequeueReusableCell(withIdentifier: identifier) as? T else { return nil }
        configure(cell)
        return cell
    }
    
    @available(*, introduced:7.0)
    public func dequeueReusableCell<T where T: UITableViewCell>(withIdentifier identifier: String, configure: (T) -> Void) -> T? {
        guard let cell = dequeueReusableCell(withIdentifier: identifier) as? T else { return nil }
        configure(cell)
        return cell
    }
    
    @available(*, deprecated:7.0, renamed: "dequeueReusableCell(withIdentifier:forIndexPath:configure:)")
    public func dequeueReusableCell<T where T: UITableViewCell>(withIdentifier identifier: String, for indexPath: IndexPath, to classType: T.Type, configure: (T) -> Void) -> UITableViewCell {
        let reusableCell = dequeueReusableCell(withIdentifier: identifier, for: indexPath)
        guard let cell = reusableCell as? T else { return reusableCell }
        configure(cell)

    }
    
    @available(*, introduced:7.0)
    public func dequeueReusableCell<T: UITableViewCell>(withIdentifier identifier: String, for indexPath: IndexPath, configure: (T) -> Void) -> UITableViewCell {
        let reusableCell = dequeueReusableCell(withIdentifier: identifier, for: indexPath)
        guard let cell = reusableCell as? T else { return reusableCell }
        configure(cell)
