code: function () {
  
          var a = arguments;
  
          if( typeof a[1] === 'object' ){ 
  
              a[1].isUI = true;
              a[1].main = this;
  
          } else if( typeof a[1] === 'string' ){
  
              if( a[2] === undefined ) [].push.call(a, { isUI:true, main:this });
              else {
                  a[2].isUI = true;
                  a[2].main = this;
              }
              
          } 
  
          var u = add.apply( this, a );
  
          if( u === null ) return;
  
  
          //var n = add.apply( this, a );
          //var n = UIL.add( ...args );
  
          this.uis.push( u );
          //n.py = this.h;
  
          if( !u.autoWidth ){
              var y = u.c[0].getBoundingClientRect().top;
              if( this.prevY !== y ){
                  this.calc( u.h + 1 );
                  this.prevY = y;
              }
          }else{
              this.prevY = 0;//-1;
              this.calc( u.h + 1 );
          }
  
          return u;
  
      }
docs: ---------------------- ADD NODE ----------------------