     
     private func registerCell(with identifier: String) {
         guard let delegate = delegate else {
-            return
+            fatalError("Delegate must be provided by now.")
         }
         switch delegate.cell(forIdentifier: identifier) {
         case .basic:

    }
    
    // MARK: Lifecycle
    
    open override func viewDidLoad() {
        super.viewDidLoad()

        reload()
    }

    // MARK: Helpers

extension TableViewModelController {
    
    open override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        guard let cell = tableView.cellForRow(at: indexPath) as? UITableViewCell & TableViewModelCell else {
            return
        }
        if cell.selectionStyle != .none {
            delegate?.performAction(for: cell, at: indexPath, sender: self)
        }
    }
    
