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

                ]
                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 []
        }
    }
}

    
    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()
