     }
     reachabilityManager?.startListening()
   }
-  
-  deinit {
-    NotificationCenter.default.removeObserver(self)
-  }
+
+  // MARK: Public image request methods
 
   /// Request an image
+  @discardableResult
   public func asyncImage(forURLString URLString: String, size: CGSize? = nil, filters: [YapImageFilter]? = [AspectFillFilter()], completion: @escaping ImageRequestCompletion) -> ImageRequestTicket {
 		let ticket: ImageRequestTicket = UUID().uuidString
 		let key = self.keyForImage(withURLString: URLString, size: size, filters: filters)

import Alamofire
import CocoaLumberjack

public let YapImageManagerExpireImagesAfter = 172800.0 // 48 hours
public let YapImageManagerExpireImageAttributesAfter = 1209600.0 // 2 weeks
public let YapImageManagerUpdatedNotification = Notification.Name(rawValue: "YapImageManagerUpdatedNotification")
public let YapImageManagerFailedNotification = Notification.Name(rawValue: "YapImageManagerFailedNotification")
public let YapImageManagerImageWillBeginDownloadingNotification = Notification.Name(rawValue: "YapImageManagerImageWillBeginDownloadingNotification")

    backgroundAttributesDatabaseConnection.metadataPolicy = .share

    imageDecodeQueue = DispatchQueue(label: "YapImageManager.imageDecodeQueue", qos: .default, attributes: .concurrent)

    pendingWritesDict = [AnyHashable: Any]()
    attributesCache = NSCache()
