 
     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


  private var verificationMode: VerificationMode!

  private var callHistory = [String: [[Any?]]]()
  private var callOrder = 1

  public init(_ testCase: XCTestCase) {
    mockFailer = MockFailerImpl(withTestCase: testCase)
