 
     stubs.append(stub)
   }
+}
+
+
+// MARK:- CallHandler state `GetArgs` functionalities
+
+
+extension CallHandlerImpl {
+
+  private func assignArguments(ofFunction functionName: String) {
+    guard let arguments = callHistory[functionName] else {
+      fatalError("No arguments are recorded for method \(functionName)")
+    }
+
+    guard callOrder <= arguments.count else {
+      fatalError("Call Order for method \(functionName) is greater than number of times method is called")
+    }
+
+    argumentsOfSpecificCall = arguments[callOrder - 1]
+  }
 }

public class CallHandlerImpl: CallHandler {

  public var argumentsOfSpecificCall: [Any?]!
  
  private let mockFailer: MockFailer



        transtion(toState: .None)
//      case .Verify: break
      case .GetArgs:
        assignArguments(ofFunction: function)

        transtion(toState: .None)
      default: break
    }
    
    return returnValue
  }
