 
 import UIKit
 
-final class TableViewController: UITableViewController {
+final class TableViewController: UIViewController {
 
-    private let _tableView = TableView(frame: CGRect.zero, style: .plain)
+    private let tableView = TableView(frame: CGRect.zero, style: .plain)
     private let viewModel: TableViewModeling
 
     // MARK: - Life Cycle
 
     init(viewModel: TableViewModeling) {
         self.viewModel = viewModel
-        super.init(style: .plain)
+        super.init(nibName: nil, bundle: nil)
     }
 
     required init?(coder aDecoder: NSCoder) {

            self?.setEditing(bool, animated: animated)
        }
    }

    // MARK: - UITableViewDataSource

    override func numberOfSections(in tableView: UITableView) -> Int {
        return viewModel.numberOfSections
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return viewModel.numberOfRows(inSection: section)
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let identifier = viewModel.cellIdentifier
        let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath)
        return viewModel.configured(cell: cell, forRowAt: indexPath)
    }

    // MARK: - UITableViewDelegate

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        viewModel.didSelectRow(at: indexPath)
    }

    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        viewModel.commit(edit: editingStyle, forRowAt: indexPath)
    }

    override func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
        return viewModel.editingStyleForRow(at: indexPath)
    }

    override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return viewModel.canEditRow(at: indexPath)
    }
}

        viewModel.viewDidLoad() // Must be called after ViewModel configured
    }

    override func setEditing(_ editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: animated)
        tableView.setEditing(editing, animated: animated)
    }

    private func configureTableView() {
        let gestureRecognizer = UILongPressGestureRecognizer()
        gestureRecognizer.addTarget(self, action: #selector(didLongPress))
        tableView.addGestureRecognizer(gestureRecognizer)
        tableView.dataSource = self
        tableView.delegate = self
    }

    @objc private func didLongPress(sender: UILongPressGestureRecognizer) {
        let point = sender.location(in: sender.view)
        let tableView = sender.view as? UITableView
