 
         // Create temporary directory.
         do {
-            self.tmpDir = NSTemporaryDirectory() + "/algolia/" + NSUUID().UUIDString
-            try NSFileManager.defaultManager().createDirectoryAtPath(self.tmpDir!, withIntermediateDirectories: true, attributes: nil)
+            tmpDir = NSTemporaryDirectory() + "/algolia/" + NSUUID().UUIDString
+            try NSFileManager.defaultManager().createDirectoryAtPath(tmpDir, withIntermediateDirectories: true, attributes: nil)
         } catch _ {
-            NSLog("ERROR: Could not create temporary directory '%@'", self.tmpDir!)
+            NSLog("ERROR: Could not create temporary directory '%@'", tmpDir)
         }
         
         // NOTE: We use `NSOperation`s to handle dependencies between tasks.

        assert(self.mirrored, "Mirroring not activated on this index")

        // If already syncing, abort.
        if self.syncing {
            return
        }
        self.syncing = true

        // Notify observers.
        dispatch_async(dispatch_get_main_queue()) {

    }
    
    // ----------------------------------------------------------------------
    // MARK: - Browse
    // ----------------------------------------------------------------------
    // NOTE: Contrary to search, there is no point in transparently switching from online to offline when browsing,
    // as the results would likely be inconsistent. Anyway, the cursor is not portable across instances, so the
