docs: function newHttpRequest (call) {
      // get clone of call and reset original
      call = resetCall(call)
      // require immutable core
      assert.ok(GLOBAL.immutableHttpClient !== undefined, 'ImmutableAI configuration error: immutableHttpClient required')
      // get method name
      var method = call.module
      // require valid function
      assert.ok(defined(httpMethods[method]) || method === 'request', `InnutableAI error: invalid method ${call.module} for ImmutableHttpClient`)
      // return function wrapper
      return (arg1, arg2, arg3) => {
          // if method is an http verb method then there are 3 args
          if (defined(httpMethods[method])) {
              // call http client method using local session if not passed
              return GLOBAL.immutableHttpClient[call.module](arg1, arg2, defined(arg3) ? arg3 : call.session)
          }
          // otherwise method is request with 2 args
          else {
              // call http client method using local session if not passed
              return GLOBAL.immutableHttpClient[call.module](arg1, defined(arg2) ? arg2 : call.session)
          }
      }
  }