         do {
             let start = NSDate()
 
-            guard let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String:[Int]] else { return }
+            guard let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary else { return }
             let fastCodedData = FastCoder.dataWithRootObject(json)
 
-            print("»»»»» HTTPS-E convert to archive time: \(NSDate().timeIntervalSinceDate(start))")
+            NSLog("»»»»» HTTPS-E convert to archive time: \(NSDate().timeIntervalSinceDate(start))")
 
             loader.finishWritingToDisk(fastCodedData, etag: etag)
 

        }
    }

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

    static let dataVersion = "5.1.2"
    var isEnabled = true
    var db: Connection?
    var domainToIdMapping: NSDictionary?

    lazy var rulesetsLoader: NetworkDataFileLoader = {
        let rulesetsDataUrl = NSURL(string: "https://s3.amazonaws.com/https-everywhere-data/\(dataVersion)/rulesets.sqlite")!
