     public func unwatch(target: AnyObject) {
         
         ObservingUnwatch(self, target)
+    }
+    
+    public func equals(rhs: Element) -> Bool {
+
+        if let oldValue = self.value {
+            return self.equatable(newValue: rhs, oldValue: oldValue)
+        }
+        return false
     }
     
     func trigger(e: Event) {

    func watch<O: AnyObject>(target: O, _ queue: dispatch_queue_t, emitter: (event: Event, observer: O) -> Void)
    
    func unwatch(target: AnyObject)
}



    public func unwatch(target: AnyObject) {
        
        ObservingUnwatch(self, target)
    }
    
    public func equals(rhs: Element) -> Bool {
        //NOTE: ObservingArray.equals is not work
        return false
    }
    
    func trigger(e: Event) {
