 }
 
 // MARK: - Custom Cells
-
-public protocol TableCellWithToggle {
-    var toggle: UISwitch { get }
-}
-
-public extension TableCellWithToggle where Self: TableCellBasic {
-    func configureCellWithToggle() {
-        selectionStyle = .none
-        toggle.addTarget(self, action: #selector(performCallback(_:)), for: .valueChanged)
-    }
-}
     
-open class TableCellToggle: TableCellBasic, TableCellWithToggle {
+open class TableCellToggle: TableCellBasic {
     public let toggle = UISwitch()
     
     open override func configure() {
         super.configure()
-        configureCellWithToggle()
+
+        selectionStyle = .none
         accessoryView = toggle
+        toggle.addTarget(self, action: #selector(performCallback(_:)), for: .valueChanged)
     }
 }
 
-open class TableCellToggleSubtitle: TableCellSubtitle, TableCellWithToggle {
+open class TableCellToggleSubtitle: TableCellSubtitle {
     public let toggle = UISwitch()
     
     open override func configure() {
         super.configure()
-        configureCellWithToggle()
+
+        selectionStyle = .none
         accessoryView = toggle
+        toggle.addTarget(self, action: #selector(performCallback(_:)), for: .valueChanged)
     }
 }
 


    open override func configure() {
        super.configure()
        configureCellWithSlider()
    }
    private func configureCellWithSlider() {
        selectionStyle = .none

        contentView.addSubview(slider)

    
    open override func configure() {
        super.configure()

        selectionStyle = .none

        contentView.addSubview(textField)
        textField.translatesAutoresizingMaskIntoConstraints = false

        let margins = contentView.layoutMarginsGuide
        textField.leadingAnchor.constraint(equalTo: margins.leadingAnchor).isActive = true
        textField.trailingAnchor.constraint(equalTo: margins.trailingAnchor).isActive = true
