     }
 }
 
-extension SearchSettingsViewController: UITableViewDelegate {
+extension SearchSettingsViewController {
     public func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
         return getSection(at: section).footerTitle
     }

        assert(items.indices.contains(indexPath.row), "Item at indexPath \(indexPath) doesn't exist")
        return items[indexPath.row]
    }
}

extension SearchSettingsViewController: UITableViewDataSource {
    public func numberOfSections(in tableView: UITableView) -> Int {
        return sections.count
    }

    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        let section = getSection(at: section)
        return section.items.count
    }

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: WMFSettingsTableViewCell.identifier, for: indexPath) as? WMFSettingsTableViewCell else {
            return UITableViewCell()
        }

}

@objc(WMFSearchSettingsViewController)
final class SearchSettingsViewController: SubSettingsViewController {

    public override func viewDidLoad() {
        super.viewDidLoad()
        tableView.register(WMFSettingsTableViewCell.wmf_classNib(), forCellReuseIdentifier: WMFSettingsTableViewCell.identifier)
        title = CommonStrings.searchTitle
    }

    private lazy var sections: [Section] = {
