
class ModulledTableViewController: UITableViewController {
    var tableViewModules: [TableViewModule]! {
        didSet {
            tableViewModules.forEach { module in
                module.prepare(forTableView: self.tableView)
                module.parentController = self
                module.didChangeContentHandler = { [weak self] updatedModule in
                    if let index = self?.tableViewModules.index(where: { $0 === updatedModule }) {
                        self?.tableView.reloadSections(IndexSet(integer: index), with: .none)
                    } else {
                        self?.tableView.reloadData()