             }
 
             isSubscribed = false
-            _ = listeners.removeAtIndex(index)
+            _ = listeners.removeValueForKey(uuid)
         }
         return unsubscribe
     }

    }

    func subscribe(listener: Listener) -> () -> Void {
        listeners.append(listener)
        let index = listeners.count - 1
        var isSubscribed = true

        func unsubscribe() {

) -> ReduxStore {
    var currentReducer = reducer
    var currentState = initialState
    var listeners = [NSUUID: Listener]()
    var isDispatching = false

    func getState() -> ReduxState {
