         cell.accessoryType = .disclosureIndicator
       case "showbanner":
         cell.accessoryType = .none
+        let showBannerSwitch = UISwitch()
+        let switchFrame = frameAtRightOfCell(cell: cell.frame, controlSize: showBannerSwitch.frame.size)
+        showBannerSwitch.frame = switchFrame
+        showBannerSwitch.isOn = false //TODO: find the setting this is to show!
+        showBannerSwitch.addTarget(self, action: #selector(self.bannerSwitchValueChanged),
+                                      for: .valueChanged)
+        cell.addSubview(showBannerSwitch)
       case "showgetstarted":
         cell.accessoryType = .none
+        let dontShowAgainSwitch = UISwitch()
+//        let rightOffset = cell.frame.size.width
+//        let switchWidth: CGFloat = 20
+//        let switchX = rightOffset - switchWidth
+//        let dontShowAgainSwitch = UISwitch()
+//        let switchHeight = dontShowAgainSwitch.frame.size.height
+//        let cellSwitchHeightDiff = cell.frame.size.height - switchHeight
+//        let switchY = cell.frame.origin.y + 0.5 * cellSwitchHeightDiff
+
+//        let switchFrame = CGRect(x: switchX,
+//                                 y: switchY,
+//                                 width: switchWidth,
+//                                 height: cell.frame.size.height)
+        let switchFrame = frameAtRightOfCell(cell: cell.frame, controlSize: dontShowAgainSwitch.frame.size)
+        dontShowAgainSwitch.frame = switchFrame
+        dontShowAgainSwitch.isOn = dontShowGetStarted
+        dontShowAgainSwitch.addTarget(self, action: #selector(self.showGetStartedSwitchValueChanged),
+                                      for: .valueChanged)
+        cell.addSubview(dontShowAgainSwitch)
+
       default:
         log.error("unknown cellIdentifier(\"\(cellIdentifier ?? "EMPTY")\")")
         cell.accessoryType = .none
     }
     
     return cell
+  }
+  
+  @objc func bannerSwitchValueChanged(_ sender: Any) {
+    let userData = Storage.active.userDefaults
+    if let toggle = sender as? UISwitch {
+      userData.set(toggle.isOn, forKey: "ShouldShowBanner") //???
+      userData.synchronize()
+    }
+  }
+  
+  @objc func showGetStartedSwitchValueChanged(_ sender: Any) {
+    let userData = Storage.active.userDefaults
+    if let toggle = sender as? UISwitch {
+      userData.set(toggle.isOn, forKey: "ShouldShowGetStarted")
+      userData.synchronize()
+    }
+  }
+  
+  private var dontShowGetStarted: Bool {
+    let userData = Storage.active.userDefaults
+    return !userData.bool(forKey: "ShouldShowGetStarted")
   }
 
   override open func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {

        // #warning Incomplete implementation, return the number of rows
        return 3
    }

  override open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifier = itemsArray[indexPath.row]["reuseid"]

    cell.textLabel?.text = itemsArray[indexPath.row]["title"]
    cell.detailTextLabel?.text = itemsArray[indexPath.row]["subtitle"]
    cell.tag = indexPath.row
    cell.isUserInteractionEnabled = true

    if indexPath.row == 0 {
      cell.accessoryType = .disclosureIndicator
    } else {
      cell.textLabel?.isEnabled = true
      cell.detailTextLabel?.isEnabled = false
    }

  }
  
  // In a xib-based application, navigation from a table can be handled in -tableView:didSelectRowAtIndexPath:
