docs: function newTask (call) {
      // get clone of call and reset original
      call = resetCall(call)
      // require ImmutableCoreComponent
      assert.ok(GLOBAL.immutableCoreTask !== undefined, 'ImmutableAI configuration error: immutableCoreTask required')
      // get task - throws error if not found
      var task = GLOBAL.immutableCoreTask.task(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 task.new(args)
      }
  }