     
     public func fetchAlbums(buildGroupByDay buildGroupByDay: Bool = false) -> [PhotosProviderCollection] {
         
+        guard PhotosProvider.authorizationStatus == .Authorized else {
+            return []
+        }
+        
+        if let fetchedAlbums = self.fetchedAlbums {
+            
+            return fetchedAlbums
+        }
+        
         if #available(iOS 8.0, *) {
             
             let collections = self.configuration.fetchAlbums()

                ]
                return options
                }()
            return collections.map {
                
                let _assets = PHAsset.fetchAssetsInAssetCollection($0, options: defaultOptions)
                let title = $0.localizedTitle ?? ""
                return PhotosProviderCollection(title: title, group: _assets, buildGroupByDay: buildGroupByDay)
            }
        } else {
            
            return []
        }
    }
}

        self.configuration = configuration
    }
            
    public func startPreheating() {
        
        guard PhotosProvider.authorizationStatus == .Authorized else {
            return
        }
        // TODO: Auth
        self.fetchAlbums()
    }
    
    public func endPreheating() {
        
    }
    
    public func fetchAllPhotos() -> PhotosProviderCollection? {
        
        guard PhotosProvider.authorizationStatus == .Authorized else {
            return nil
        }
        
        if #available(iOS 8.0, *) {
            // Use Photos.framework
