   
   public override func numberOfObjectsInSection(_ section: Int) -> Int {
     let flatSection = flatSections()[section]
+    
     return flatSection.dataSource.numberOfObjectsInSection(flatSection.relativeSectionIndex)
   }
   
   public override func objectAtIndexPath(_ indexPath: IndexPath) -> ObjectType? {
     let flatSection = flatSections()[indexPath.section]
+    
     return flatSection.dataSource.objectAtIndexPath(IndexPath(row: indexPath.row, section: flatSection.relativeSectionIndex))
   }
   

      }
      sectionsPassed += source.numberOfSections()
    }
    return result
  }
  

    
    let precedingDataSources = dataSources.prefix(upTo: dataSources.index(of: source)!)
    let precedingSectionsCount = precedingDataSources.reduce(0) { totalSectionsCount, dataSource in
      return totalSectionsCount + (dataSource != source ? dataSource.numberOfSections() : 0)
    }
    
    return IndexPath(row: relativeIndexPath.row, section: precedingSectionsCount + relativeIndexPath.section)
