 extension SettingsViewController: UITableViewDataSource, UITableViewDelegate {
 
     private enum Section: Int {
-        case User = 0
+        case User
+        case UI
         case More
     }
 
     func numberOfSectionsInTableView(tableView: UITableView) -> Int {
-        return 2
+        return 3
     }
 
     func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+
+        guard let section = Section(rawValue: section) else {
+            fatalError()
+        }
+
         switch section {
-        case Section.User.rawValue:
+        case .User:
             return 1
-        case Section.More.rawValue:
+        case .UI:
+            return 1
+        case .More:
             return moreAnnotations.count
-        default:
-            return 0
         }
     }
 
     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
-        switch indexPath.section {
 
-        case Section.User.rawValue:
+        guard let section = Section(rawValue: indexPath.section) else {
+            fatalError()
+        }
+
+        switch section {
+
+        case .User:
             let cell = tableView.dequeueReusableCellWithIdentifier(settingsUserCellIdentifier) as! SettingsUserCell
             return cell
 
-        case Section.More.rawValue:
+        case .UI:
+            return UITableViewCell()
+
+        case .More:
             let cell = tableView.dequeueReusableCellWithIdentifier(settingsMoreCellIdentifier) as! SettingsMoreCell
             let annotation = moreAnnotations[indexPath.row]
             cell.annotationLabel.text = annotation["name"]
             return cell
-
-        default:
-            return UITableViewCell()
         }
     }
 
     func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
-        switch indexPath.section {
 
-        case Section.User.rawValue:
+        guard let section = Section(rawValue: indexPath.section) else {
+            fatalError()
+        }
+
+        switch section {
+
+        case .User:
 
             let tableViewWidth = CGRectGetWidth(settingsTableView.bounds)
             let introLabelMaxWidth = tableViewWidth - YepConfig.Settings.introInset


            return height

        case Section.More.rawValue:
            return 60

        default:
            return 0
        }
    }


            tableView.deselectRowAtIndexPath(indexPath, animated: true)
        }

        guard let section = Section(rawValue: indexPath.section) else {
            fatalError()
        }

        switch section {

        case .User:
            performSegueWithIdentifier("showEditProfile", sender: nil)

        case .UI:
            break

        case .More:
            let annotation = moreAnnotations[indexPath.row]

            if let segue = annotation["segue"] {
                performSegueWithIdentifier(segue, sender: nil)
            }
        }
    }
}
