docs: function newComponent (call) {
      // get clone of call and reset original
      call = resetCall(call)
      // require ImmutableCoreComponent
      assert.ok(GLOBAL.immutableCoreComponent !== undefined, 'ImmutableAI configuration error: immutableCoreComponent required')
      // get component - throws error if not found
      var component = GLOBAL.immutableCoreComponent.component(call.module)
      // return function wrapper that calls new with session
      return args => {
          // make sure args is object
          if (!defined(args)) {
              args = {}
          }
          // add session to args if not defined
          if (!defined(args.session)) {
              args.session = call.session
          }
          // create new component
          return component.new(args)
      }
  }