@PublishedApi internal actual inline fun ServiceFactory.makeProxy( callAdapter: CallAdapter, functionInvocationHandlers: Map, FunctionWorker>, httpCallInvoker: HttpCallInvoker ): S { return Proxy.newProxyInstance( S::class.java.classLoader, arrayOf>( S::class.java ) ) { _, method, args -> val kFunction = method.kotlinFunction!! val functionWorker = functionInvocationHandlers[kFunction]!! callAdapter.wrapCall { val httpParams = functionWorker( args ) val result = httpCallInvoker( httpParams ) val strategy = serializerByTypeToken( kFunction.unwrapReturnType().javaType ) JSON.parse( strategy, result.readText() ) } } as S }