    private func _forget(_ observer: ConductionResourceObserver) {
       let oldPriority = _priority()
       _waitingBlocks = _waitingBlocks.filter { $0.id != observer }
+      _history = _history.filter { $0 != observer }
       _updatePriority(oldPriority: oldPriority)
    }
    

open class ConductionResource<Resource> {
   // MARK: - Private Properties
   private var _waitingBlocks: [(id: ConductionResourceObserver, priority: Int, block: (_ resource: Resource?) -> Void)] = []
   
   // MARK: - Public Properties
   public private(set) var state: ConductionResourceState<Resource> = .empty

   }
   
   // MARK: - Public
   func get(observer: ConductionResourceObserver? = nil, priority: Int? = nil, completion: @escaping (_ resource: Resource?) -> Void) -> ConductionResourceObserver {
      let observer = observer ?? ConductionResourceObserver()
      dispatchQueue.async {
         self._get(observer: observer, priority: priority, completion: completion)
      }
