 	private let reduce: Reducer
 	private var state: State
 	private var isDispatching = false
-	private var uniqueId = 0
-	private var subscribers: [Int: AnyObserver<State>] = [:]
+	private var subscribers: [AnyObserver<State>] = []
 	private var dispatcher: Dispatcher = { _ in fatalError() }
 }
 

	
	private let _handle: (State) -> Void
}

private struct Entry<T> where T: AnyObject {
	typealias Element = T
	weak var element: Element?
}

	public init(initial state: State, reducer: @escaping Reducer, middleware: [Middleware] = []) {
		self.state = state
		reduce = reducer
		dispatcher = middleware.reversed().reduce(self._dispatch) { dispatcher, middleware in
			middleware(dispatcher, { self.state })
		}
	}
