 
     data: (data) ->
       return @_data if not data
-      @_allData.push(data)
+      @original = data if not @original
       @total = data.value
       @_data = partitionData(addMaxDepth(addFillerNodes(data)))
       @
 
     zoom: (node) ->
+      throw new Error("Zoom is disabled!") if not @zoomEnabled()
       if node in @_ancestors
         @_ancestors = @_ancestors.slice(0, @_ancestors.indexOf(node))
       else

        'zoomEnabled',
        'tooltipEnabled',
        'color'])
      @_allData = []
      @_ancestors = []
      # defaults
      @_size        = [1200, 800]
      @_cellHeight  = 10

    _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
