     }
 
     @discardableResult
-    func reload(sectionAtIndex index: Int, with animation: UITableViewRowAnimation = .none) -> Self {
+    public func reload(sectionAtIndex index: Int, with animation: UITableViewRowAnimation = .none) -> Self {
         let action = { [tableView] in
             if index < tableView?.numberOfSections ?? 0 {
                 tableView?.reloadSections([index], with: animation)


import TableKit

extension TableDirector {

    @discardableResult
    func replace(section: TableSection, atIndex index: Int, reload: Bool = true) -> Self {
        if index < sections.count {
            remove(sectionAt: index)
        }

    }

    @discardableResult
    public func replace(withSections sections: [TableSection]) -> Self {
        clear().append(sections: sections).reload()
        return self
    }

    @discardableResult
    public func replace(withSection section: TableSection) -> Self {
        return replace(withSections: [section])
    }

    @discardableResult
    public func replace(withRows rows: [Row]) -> Self {
        return replace(withSection: TableSection(rows: rows))
    }

