                 super.init(object: object, keyPath: keyPath, options: [.New, .Old, .Initial, .Prior])
             }
             
-            override func put(change: [String : AnyObject]) {
+            override func callback(change: [String : AnyObject]) {
                 self.sink.put(change)
             }
         }


import Foundation

public class Observer<T> : NSObject {
    
    public let sink = Sink<T>()
    
    private let object: NSObject
    private let keyPath: String
    private var token = 0
    
    private init(object: NSObject, keyPath: String, options: NSKeyValueObservingOptions) {
        self.object = object
        self.keyPath = keyPath
        super.init()

                super.init(object: object, keyPath: keyPath, options: .Prior)
            }
            
            override func callback(change: [String : AnyObject]) {
                if let old = change[NSKeyValueChangeOldKey] {
                    self.sink.put(old)
                }
