 
     func processResults(withData data: Data?, response: URLResponse?, error: Error?) {
         if let error = error {
-            self.postError(.appStoreDataRetrievalFailure, underlyingError: error)
+            postError(.appStoreDataRetrievalFailure, underlyingError: error)
         } else {
             guard let data = data else {
-                self.postError(.appStoreDataRetrievalFailure, underlyingError: nil)
+                postError(.appStoreDataRetrievalFailure, underlyingError: nil)
                 return
             }
 
             do {
-                let jsonData = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments)
+                let jsonData = try JSONSerialization.jsonObject(with: data, options: [])
                 guard let appData = jsonData as? [String: Any],
-                    self.isUpdateCompatibleWithDeviceOS(appData: appData) else {
-
-                        self.postError(.appStoreJSONParsingFailure, underlyingError: nil)
+                    isUpdateCompatibleWithDeviceOS(appData: appData) else {
+                        postError(.appStoreJSONParsingFailure, underlyingError: nil)
                         return
                 }
 
-                DispatchQueue.main.async {
+                DispatchQueue.main.async { [unowned self] in
                     // Print iTunesLookup results from appData
                     self.printMessage(message: "JSON results: \(appData)")
 

        self.appID = appID

        guard let currentAppStoreVersion = allResults.first?["version"] as? String else {
            self.postError(.appStoreVersionArrayFailure, underlyingError: nil)
            return
        }


        storeVersionCheckDate() // Store version comparison date

        guard let allResults = results["results"] as? [[String: Any]] else {
            postError(.appStoreVersionNumberFailure, underlyingError: nil)
            return
        }

