         if shouldUseAutomaticCellRegistration {
             self.cellRegisterer = TableCellRegisterer(tableView: tableView)
         }
-        
+
         self.scrollDelegate = scrollDelegate
         self.tableView = tableView
         self.tableView?.delegate = self

    open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let row = sections[indexPath.section].rows[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: row.reuseIdentifier, for: indexPath)
        
        if cell.frame.size.width != tableView.frame.size.width {

    // MARK: - Height
    
    open func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {

        let row = sections[indexPath.section].rows[indexPath.row]
        return row.estimatedHeight ?? rowHeightCalculator?.estimatedHeight(forRow: row, at: indexPath) ?? UITableViewAutomaticDimension
    }
    
    open func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        
        let row = sections[indexPath.section].rows[indexPath.row]
        
        if shouldUsePrototypeCellHeightCalculation {
            cellRegisterer?.register(cellType: row.cellType, forCellReuseIdentifier: row.reuseIdentifier)
        }

        let rowHeight = invoke(action: .height, cell: nil, indexPath: indexPath) as? CGFloat

