docs: function initNew (args) {
      // get module
      var module = this.component.module
      // if module has new method run it
      if (module.new) {
          // call new method with original new args
          this.promise = module.new(args.args).then(res => {
              // if new returns undefined do not set
              if (!defined(res)) {
                  return
              }
              // require data to be object
              this.assert(typeof res === 'object' && res, 110)
              // if data is set then use it
              if (defined(res.data)) {
                  // require data to be object
                  this.assert(typeof res.data === 'object' && res.data, 110)
                  // set component data to data returned by new method
                  this.data = res.data
              }
              // if id set set it data use it
              if (defined(res.id)) {
                  this.id = res.id
              }
          })
      }
      // otherwise set resolved promise
      else {
          // use any args for data
          _.merge(this.data, args.args)
          // set init promise as resolved
          this.promise = Promise.resolve()
      }
  }