         }
     }
 
-    private func finishedUnarchivingPreparsedJson(json: AnyObject?) {
+    private func finishedUnarchivingPreparsedJson(json: NSDictionary) {
         delay(0) { // post to main thread
-            guard let json = json as? [String:[Int]] else { return }
             self.domainToIdMapping = json
             self.checkBothLoadsAreComplete()
         }

        do {
            let start = NSDate()

            guard let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String:[Int]] else { return }
            let fastCodedData = FastCoder.dataWithRootObject(json)

            print("»»»»» HTTPS-E convert to archive time: \(NSDate().timeIntervalSinceDate(start))")

            loader.finishWritingToDisk(fastCodedData, etag: etag)


            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)) {
                let start = NSDate()

                guard let obj = FastCoder.objectWithData(data) as? NSDictionary else { return }
                self.finishedUnarchivingPreparsedJson(obj)

                NSLog("»»»»» HTTPS-E unarchive time: \(NSDate().timeIntervalSinceDate(start))")
            }
        } else if loader === rulesetsLoader {
            loadSqlDb()
