code: function(type) {
  
              if (Array.isArray(type)) {
                  var call_args = Array.prototype.slice(arguments);
                  return type.map(function(typ) {
                      call_args[0] = typ;
                      return processor.add.apply(this, call_args);
                  }, this);
              }
  
              var com = type;
  
              if (typeof type === 'string')
                  com = processor.create.apply(this, arguments);
  
              if (!com.name)
                  throw new TypeError('Root node must have name!');
  
              if (com.name in processor)
                  throw new TypeError('Root node named ' + com.name + ' already exist!');
  
              if (this.root_nodes.indexOf(com) < 0)
                  this.root_nodes.push(com);
  
              return (processor[com.name] = com);
          }
docs: Returns newly created component object. 
  Add newly created named componet(s) as a root node(s). Root nodes are available by name as a property of processor object.
  Method arguments are the same as in the method of processor.create()
  @returns {object|Array} Returns newly created component object(s).