 }
 
 final class PhotoLibraryItemsServiceImpl: NSObject, PhotoLibraryItemsService, PHPhotoLibraryChangeObserver {
-
+    
     private let photoLibrary = PHPhotoLibrary.shared()
-    private var albumsFetchResult: PHFetchResult<PHAssetCollection>?
-    
-    private let setupQueue = DispatchQueue(
-        label: "ru.avito.Paparazzo.PhotoLibraryItemsServiceImpl.setupQueue",
-        qos: .userInitiated
-    )
+    private var albumsFetchResult: PhotoLibraryFetchResult?
     
     // lazy because if you create PHImageManager immediately
     // the app will crash on dealloc of this class if access to photo library is denied

    func observeAlbums(handler: @escaping ([PhotoLibraryAlbum]) -> ()) {
        executeAfterSetup {
            self.onAlbumsChange = handler
            handler(self.albums())
        }
    }
    

        }
        
        switch PHPhotoLibrary.authorizationStatus() {
        
        case .authorized:
            wasSetUp = true
            setUpFetchResult(completion: completion)
        
        case .notDetermined:
            PHPhotoLibrary.requestAuthorization { [weak self] status in
                self?.callAuthorizationHandler(for: status)
                self?.wasSetUp = true
                
                if case .authorized = status {
                    self?.setUpFetchResult(completion: completion)
                } else {
                    completion()
                }
            }
            
        case .restricted, .denied:
            wasSetUp = true
            completion()
        }
    }
    
    private func setUpFetchResult(completion: @escaping () -> ()) {
        PhotoLibraryFetchResult.create { albumsFetchResult in
            self.albumsFetchResult = albumsFetchResult
            self.callObserverHandler(changes: nil)
            completion()
        }
    }
    
    private func callAuthorizationHandler(for status: PHAuthorizationStatus) {
