   model: D3.merit_order.Node
 
   max_height: =>
-    _.max(@map (i) -> i.value_y())
+    d3.max @models, (i) -> i.value_y()
 
   total_width: =>
-    tot = 0
-    @each (i) -> tot += i.value_x()
-    tot
+    d3.sum @models, (n) -> n.value_x()

      @svg.append("svg:text")
        .text('Operating Costs [EUR/MWh]')
        .attr("x", @height / -2)
        .attr("y", -25)
        .attr("text-anchor", "middle")
        .attr("class", "axis_label")
        .attr("transform", "rotate(270)")

      @svg.append("svg:text")
        .text('Installed Capacity [MW]')
        .attr("x", @width / 2)
        .attr("y", @series_height + 10)
        .attr("text-anchor", "middle")
        .attr("class", "axis_label")


        )
        .attr("x", (d) => @x(d.get 'x_offset'))
        .attr("data-tooltip-text", (d) ->
          html = "Installed capacity: #{Metric.autoscale_value(d.value_x() * 1000000, 'MW', 2)}
                  <br/>
                  Operating costs: #{Metric.autoscale_value d.original_y_value(), 'euro', 2}"
          if d.get('key') == 'must_run'
            html += '*<br/>* Must run plants do not participate in merit order'
          html
