 
 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
 

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

   public private(set) var resource: Resource?
   
   // MARK: - Init
   public init(dispatchQueue: DispatchQueue = .main, defaultPriority: Int = 0, fetchBlock: ConductionResourceFetchBlock<Input, Resource>? = nil, transformBlock: ConductionResourceTransformBlock<Input, Resource>? = nil, commitBlock: @escaping ConductionResourceCommitBlock<Input, Resource> = { _, nextState in return nextState }) {
      self.dispatchQueue = dispatchQueue
      self.defaultPriority = defaultPriority
      self.fetchBlock = fetchBlock
