       data = augment(data)
       console.timeEnd('augment')
       @original = data if not @original
+      console.time('partition')
       @_data = partitionData(data)
+      console.timeEnd('partition')
       @
 
     zoom: (node) ->

        .attr('y', (d, idx) => attrs.y(d, idx) + @cellHeight() / 2)
        .style('font-size', "#{@fontSize}em")
        .text(attrs.text)
      # overlaying a transparent rectangle to capture events
      # TODO: maybe there's a smarter way to do this?
      containers.append('rect')
        .attr('class', 'overlay')
        .attr('width', attrs.width)
        .attr('height', @cellHeight())
        .attr('x', attrs.x)
        .attr('y', attrs.y)
      @

    _renderTooltip: () ->

      containers = @container
        .selectAll('.node')
        .data(@data().filter((d) =>
          @x(d.dx) > 0.4 and @y(d.y) >= 0 and not d.filler))
        .enter()
          .append('g').attr('class', (d, idx) -> if idx == 0 then 'root node' else 'node')

