code: function (node, layout_type, node_size) {
          if (typeof (node) !== 'function') {
              throw(node);
          }
  
          label.display().call(this, node, layout_type)
              .attr("class", "tnt_tree_label")
              .attr("transform", function (d) {
                  var t = label.transform()(node, layout_type);
                  return "translate (" + (t.translate[0] + node_size) + " " + t.translate[1] + ")rotate(" + t.rotate + ")";
              })
          // TODO: this click event is probably never fired since there is an onclick event in the node g element?
              .on("click", function () {
                  dispatch.click.call(this, node)
              })
              .on("dblclick", function () {
                  dispatch.dblclick.call(this, node)
              })
              .on("mouseover", function () {
                  dispatch.mouseover.call(this, node)
              })
              .on("mouseout", function () {
                  dispatch.mouseout.call(this, node)
              })
      }
docs: TODO: Not sure if we should be removing by default prev labels or it would be better to have a separate remove method called by the vis on update We also have the problem that we may be transitioning from text to img labels and we need to remove the label of a different type