         }
     }
 
-    
+    func setValue(value: Value, forKey key: Key) -> Future<Void> {
+        return self.syncObject.modifyFuture { () -> Void in
+            self.dictionary[key] = value
+        }
+    }
+
+    func updateValue(value: Value, forKey key: Key) -> Future<Value?> {
+        return self.syncObject.modifyFuture { () -> Value? in
+            return self.dictionary.updateValue(value, forKey: key)
+        }
+    }
+
     var count: Int {
         get {
             return self.syncObject.readSync { () -> Int in

                self.dictionary[key] = newValue
            }
        }
    } */
}



        }
    }

   subscript (key: Key) -> Value? {
        get {
            return self.syncObject.readSync { () -> Element? in
                return self.dictionary[key]
