docs: function (node, attributes, rootScope, cidScope) {
                  if (!node) {
                      return null;
                  }
  
                  attributes = attributes || {};
                  rootScope = rootScope || this.$rootScope;
                  cidScope = cidScope || this.$cidScope;
                  // only instantiation and construction but no initialization
  
  
                  var instance = null;
  
                  if (node.nodeType === 1) { // Elements
                      var namespaceURI = node.namespaceURI,
                          localName = this._localNameFromDomNode(node),
                          cacheKey = namespaceURI + ":" + localName,
                          factory = FactoryCache[cacheKey];
  
                      if (factory) {
                          instance = new factory(attributes, node, this.$stage, this, rootScope, cidScope, true);
                      } else {
                          var fqClassName = this.$stage.$applicationContext.getFqClassName(namespaceURI, localName, true);
                          var className = this.$stage.$applicationContext.getFqClassName(namespaceURI, localName, false);
                          instance = this.$stage.$applicationContext.createInstance(fqClassName, [attributes, node, this.$stage, this, rootScope, cidScope, true], className);
                          FactoryCache[cacheKey] = instance.factory;
                      }
  
                  } else if (node.nodeType === 3 || node.nodeType === 4) {
                      // Text nodes
                      instance = this._createTextElement(node, rootScope, cidScope, attributes);
                  }
  
                  return instance;
              }