 
 public typealias ConductionResourceTransformBlock<Input, Resource> = (_ state: ConductionResourceState<Input, Resource>, _ completion: @escaping (_ resource: Resource?) -> Void) -> Void
 
-public typealias ConductionResourceCommitBlock<Input, Resource> = (_ state: ConductionResourceState<Input, Resource>, _ nextState: ConductionResourceState<Input, Resource>, _ input: Input?) -> ConductionResourceState<Input, Resource>?
+public typealias ConductionResourceCommitBlock<Input, Resource> = (_ state: ConductionResourceState<Input, Resource>, _ nextState: ConductionResourceState<Input, Resource>) -> ConductionResourceState<Input, Resource>?
 
 public typealias ConductionResourceObserverBlock<Resource> = (_ resource: Resource?) -> Void
 

}

public class ConductionResource<Resource>: ConductionBaseResource<Resource, Resource> {
   public init(dispatchQueue: DispatchQueue = .main, defaultPriority: Int = 0, commitBlock: @escaping ConductionResourceCommitBlock<Resource, Resource> = { _, nextState, _ in return nextState }, fetchBlock: @escaping ConductionResourceFetchBlock<Resource, Resource>) {
      super.init(dispatchQueue: dispatchQueue, defaultPriority: defaultPriority, fetchBlock: fetchBlock, commitBlock: commitBlock)
   }
}

   }
   
   // MARK: - Direct
   open func directTransition(newState: ConductionResourceState<Input, Resource>) {
      let oldState = state
      guard let nextState = commitBlock(oldState, newState) else { return }
      state = nextState
      switch state {
      case .invalid(let resource):
