docs: function ImmutableCoreComponentInstance (args) {
      // require args
      this.assert(typeof args === 'object' && args, 100)
      // get component
      var component = args.component
      // require component
      this.assert(typeof component === 'object' && component && component.ImmutableCoreComponent, 101)
      // set component
      this.component = component
      // initialize data to empty object
      this.data = {}
      // if id is passed then initialize existing instance
      if (defined(args.id)) {
          // set id from args
          this.id = args.id
      }
      // otherwise create new instance
      else {
          // set default id which may be overwritten by new
          this.id = this.component.name
          // run new method setting data and id from response
          // this.promise will be resolved by new
          this.initNew(args)
      }
  }