docs: function (cfg, ctxt) {
          this.$BaseWidget.constructor.apply(this, arguments);
  
          /**
           * Creates a unique id to be used in the markup generated by the widget.
           * @return {String}
           */
          if (!cfg.id) {
              this._domId = this._createDynamicId();
          } else {
              this._domId = this._context.$getId(cfg.id);
          }
  
          /**
           * Element containing the template content
           * @protected
           * @type HTMLElement
           */
          this._subTplDiv = null;
  
          /**
           * Template context of the sub template.
           * @type aria.templates.TemplateCtxt
           */
          this.subTplCtxt = null;
  
          /**
           * Is true if a module controller instance has to be created by the template widget itself.
           * @protected
           * @type Boolean
           */
          this._needCreatingModuleCtrl = cfg.moduleCtrl && cfg.moduleCtrl.getData == null;
  
          /**
           * Configuration which will be sent to the template context. It is initialized with some properties in the
           * template widget constructor and completed later. It is set to null just after the template context has been
           * initialized, or if an error prevents the template from being loaded. So, if it is not null, we are still
           * waiting for the template to be loaded.
           * @protected
           * @type aria.templates.CfgBeans:InitTemplateCfg
           */
          this._tplcfg = {
              classpath : ariaCoreEnvironmentCustomizations.getTemplateCP(cfg.classpath),
              args : cfg.args,
              id : this._domId,
              moduleCtrl : cfg.moduleCtrl
          };
          // does the normalization
          this._checkCfgConsistency(cfg);
  
          var tplCtxt = new ariaTemplatesTemplateCtxt();
          this.subTplCtxt = tplCtxt;
  
          /**
           * Whether the context was already initialized or not.<br />
           * Not-initialized context means the the widget is still waiting for some dependencies to load, thus it's a
           * differed content
           * @type Boolean
           * @protected
           */
          this._initCtxDone = false;
  
          /**
           * Whether or not the widget is differed in its main section.<br />
           * If the context is not initialized when the markup is created this widget should be considered as differed to
           * avoid triggering $displayReady on the containg template
           * @type Boolean
           * @override
           */
          this.isDiffered = false;
  
          /**
           * CSS classes coming from the CSS templates associated to the template
           * @protected
           * @type String
           */
          this._cssClassNames = "";
      }