     }
 
     override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
-        return 2
+        return Section.allSections.count
     }
 
     override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        let section = Section(rawValue: section)!
+        
         switch section {
-        case 0:
+        case .Installation:
             return 1
-        case 1:
+        case .Settings:
             return 1
-        default:
-            return 0
         }
     }
 
     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
-        switch (indexPath.section, indexPath.row) {
-        case (0, 0):
+        let section = Section(rawValue: indexPath.section)!
+        
+        switch (section) {
+        case (.Installation):
             let cell = tableView.dequeueReusableCellWithIdentifier("installation", forIndexPath: indexPath)
+            
             return cell
-        case (1, 0):
+        case (.Settings):
             let cell = tableView.dequeueReusableCellWithIdentifier("swabSetting", forIndexPath: indexPath)
             
             let switchControl = UISwitch(frame: CGRectZero)

            // This URL will open the app's Settings page, not the Settings.app main page.
            // In iOS 8+ the app Settings page is installed automatically/randomly.
            //UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
        }
        
        tableView.deselectRowAtIndexPath(indexPath, animated: true)

class SwabSettings: UITableViewController {
    
    @IBOutlet weak var headerText: UITextView?
    
    private enum Section: Int {
        case Installation
        case Settings
        
        static let allSections = [Installation, Settings]
    }

    override func viewDidLoad() {
        super.viewDidLoad()
