 public final class Store {
     public init() { }
     
-    private let work = DispatchQueue(label: "Starburst")
     private var weakStates: [() -> StateBox?] = []
     private var weakReducers: [() -> ReducerBox?] = []
     private var weakMiddlewares: [() -> MiddlewareBox?] = []

    
    func add<S: State, A: Action>(reducer: @escaping Reducer<S, A>) -> Any {
        let box = ReducerBox(reducer: reducer)
        work.sync {
            weakReducers.append { [weak box] in box }
        }
        return box
    }
    

    func dispatch(_ action: Action, trace: Trace = Trace()) {
        let context = Context(trace: trace)
        var effects: [Effect] = []
        middlewares.forEach { middleware in
            effects += send { try middleware.apply(action: action, context: context) }
        }
        states.forEach { state in
            effects += send {
                try state.apply(action: action, context: context, reducers: reducers, observers: observers, middlewares: middlewares)
            }
        }
        process(effects)
