     }
     
     // TODO Add binding
+    var responder : ReactorResponder?
+    
     // TODO Add autobinding
     // TODO Add caching for autobinding
+}
+
+public protocol ReactorResponder {
+    func onUpdate()
 }
            let resetState = store.handleReset(prevState)
            self.stateMap = self.stateMap.setIn([id], withValue: resetState)
        }
    }
    
    // Evaluate the given getter and return the immutable state

            let newState = store.handle(prevState, action: action, payload: payload)
            self.stateMap = self.stateMap.setIn([id], withValue: newState)
        }
        if self.debug {
            NSLog("Reacting to \(action)")
        }
        self.responder?.onUpdate()
    }
    
    // Add a new store to the reactor
    func registerStore(id: String, store: Store) {
        self.stores[id] = store
        self.stateMap = self.stateMap.setIn([id], withValue: store.getInitialState())
        self.responder?.onUpdate()
    }
    
    // Restore all registered stores to their initial state
