         if !self.showsIndexList {
             return nil
         }
-        
         var indexTitles: [String] = []
-        if let dataSource = self.dataSource {
-            for section in dataSource.sections {
-                if let indexTitle = section.indexTitle {
-                    indexTitles.append(indexTitle)
-                } else {
-                    indexTitles.append("")
-                }
+        guard let dataSource = self.dataSource else {
+            return indexTitles
+        }
+        for section in dataSource.sections {
+            if let indexTitle = section.indexTitle {
+                indexTitles.append(indexTitle)
+            } else {
+                indexTitles.append("")
             }
         }
         return indexTitles


class TableViewManager: NSObject, UITableViewDelegate, UITableViewDataSource {
    
    // MARK: Variables
    //
    var dataSource: TableViewDataSource?
    var style: TableViewCellStyle?

    // Data manipulation - reorder / moving support
    
    func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) {
        guard let sourceSection = self.sectionAtIndexPath(sourceIndexPath), let item = self.itemAtIndexPath(sourceIndexPath), let destinationSection = self.sectionAtIndexPath(destinationIndexPath) else {
            return
        }
        sourceSection.items.removeAtIndex(sourceIndexPath.row)
        destinationSection.items.insert(item, atIndex: destinationIndexPath.row)
        
        if let moveCompletionHandler = item.moveCompletionHandler {
            moveCompletionHandler(section: destinationSection, item: item, tableView: tableView, sourceIndexPath: sourceIndexPath, destinationIndexPath: destinationIndexPath)
        }
    }

