docs: function(tag, node, controller) {
          var pos = node.pos.getc(true), 
              config = this.viz.config, 
              dim = config.Node, 
              canvas = this.viz.canvas,
              w = node.getData('width'),
              h = node.getData('height'),
              radius = canvas.getSize(),
              labelPos, orn;
          
          var ox = canvas.translateOffsetX,
              oy = canvas.translateOffsetY,
              sx = canvas.scaleOffsetX,
              sy = canvas.scaleOffsetY,
              posx = pos.x * sx + ox,
              posy = pos.y * sy + oy;
  
          if(dim.align == "center") {
              labelPos= {
                  x: Math.round(posx - w / 2 + radius.width/2),
                  y: Math.round(posy - h / 2 + radius.height/2)
              };
          } else if (dim.align == "left") {
              orn = config.orientation;
              if(orn == "bottom" || orn == "top") {
                  labelPos= {
                      x: Math.round(posx - w / 2 + radius.width/2),
                      y: Math.round(posy + radius.height/2)
                  };
              } else {
                  labelPos= {
                      x: Math.round(posx + radius.width/2),
                      y: Math.round(posy - h / 2 + radius.height/2)
                  };
              }
          } else if(dim.align == "right") {
              orn = config.orientation;
              if(orn == "bottom" || orn == "top") {
                  labelPos= {
                      x: Math.round(posx - w / 2 + radius.width/2),
                      y: Math.round(posy - h + radius.height/2)
                  };
              } else {
                  labelPos= {
                      x: Math.round(posx - w + radius.width/2),
                      y: Math.round(posy - h / 2 + radius.height/2)
                  };
              }
          } else throw "align: not implemented";
  
          var style = tag.style;
          style.left = labelPos.x + 'px';
          style.top  = labelPos.y + 'px';
          style.display = this.fitsInCanvas(labelPos, canvas)? '' : 'none';
          controller.onPlaceLabel(tag, node);
      }