         // #warning Incomplete implementation, return the number of rows
         return 3
     }
+  
+  public func frameAtRightOfCell(cell cellFrame: CGRect, controlSize: CGSize) -> CGRect {
+    let rightOffset = cellFrame.size.width
+    let switchWidth: CGFloat = 20
+    let switchX = rightOffset - switchWidth
+    let switchHeight = controlSize.height
+    let cellSwitchHeightDiff = cellFrame.size.height - switchHeight
+    let switchY = cellFrame.origin.y + 0.5 * cellSwitchHeightDiff
+    
+    let switchFrame = CGRect(x: switchX,
+                             y: switchY,
+                             width: switchWidth,
+                             height: cellFrame.size.height)
+    return switchFrame
+  }
 
   override open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
     let cellIdentifier = itemsArray[indexPath.row]["reuseid"]

        cell.accessoryType = .disclosureIndicator
      case "showbanner":
        cell.accessoryType = .none
      case "showgetstarted":
        cell.accessoryType = .none
      default:
        log.error("unknown cellIdentifier(\"\(cellIdentifier ?? "EMPTY")\")")
        cell.accessoryType = .none
    }
    
    return cell
  }

  override open func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {

    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:
