         return @container.selectAll('.node').filter((d) -> regex.test(d.name))
       else
         # re-partition original and filter that
-        result = partitionData(@_allData[0]).filter((d) -> regex.test(d.name))
+        result = partitionData(@original).filter((d) -> regex.test(d.name))
         return result
 
     render: (selector) ->


    data: (data) ->
      return @_data if not data
      @_allData.push(data)
      @total = data.value
      @_data = partitionData(addMaxDepth(addFillerNodes(data)))
      @

    zoom: (node) ->
      if node in @_ancestors
        @_ancestors = @_ancestors.slice(0, @_ancestors.indexOf(node))
      else

    _renderTooltip: () ->
      @tip = d3.tip()
        .attr('class', 'd3-tip')
        .html((d) => "#{d.name} <br /><br />#{d.value} samples<br />#{((d.value / @total) * 100).toFixed(2)}% of total")
        .direction (d) =>
          return 'w' if @x(d.x) + @x(d.dx) / 2 > @width() - 100
          return 'e' if @x(d.x) + @x(d.dx) / 2 < 100
