 }
 
 
-class CollectionViewCoordinator<CollectionType, DataSource: DataSourceProvider where DataSource.ItemType == CollectionType, DataSource.DataSourceDelegate == DataSourceProviderCollectionViewAdapter<CollectionType>> : NSObject, UICollectionViewDataSource {
+public class CollectionViewCoordinator<CollectionType, DataSource: DataSourceProvider where DataSource.ItemType == CollectionType, DataSource.DataSourceDelegate == DataSourceProviderCollectionViewAdapter<CollectionType>> : NSObject, UICollectionViewDataSource {
     
     let collectionView: UICollectionView
     

    }
}

@objc protocol CollectionViewCellProvider {
    
    func collectionView(collectionView: UICollectionView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
    

    let collectionViewCellProvider: CollectionViewCellProvider
    
    
    public init(collectionView: UICollectionView, dataSource: DataSource, cellProvider: CollectionViewCellProvider) {
        
        self.collectionView = collectionView
        self.dataSource = dataSource
