         append("svg:rect").
         attr("data-rel", (d) -> d.get('key')).
         attr("class", "merit_order_node").
-        attr("fill", (d, i) => @color(i)).
-        attr("data-original-color", (d, i) => @color(i)).
-        style("stroke", (d, i) => d3.rgb(@color(i)).darker(1)).
+        attr("fill", (d) => d.get 'color').
+        style("stroke", (d) => d3.rgb(d.get 'color').darker(1)).
         attr("y", (d) => @height - @y(d.value_y()) - .5).
         attr("x", (d, i) -> i * 30).
         attr("height", (d) => @y d.value_y()).
         attr("width", (d) => @x d.value_x()).
         on("mouseover", ->
           item = d3.select(this)
-          item.transition().attr("fill", -> d3.rgb(item.attr("data-original-color")).brighter(1))
+          item.transition().attr("fill", (d) -> d3.rgb(d.get("color")).brighter(1))
         ).
         on("mouseout", ->
           item = d3.select(this)
-          item.transition().attr("fill", -> item.attr("data-original-color"))
+          item.transition().attr("fill", (d) -> d.get("color"))
         )
 
       $('rect.merit_order_node').qtip

D3.merit_order =
  data:
    [
      {key: 'central_gas_chp'},
      # {key: 'co_firing_coal'},
      {key: 'coal_chp'},
      {key: 'coal_conv'},
      {key: 'coal_igcc'},
      {key: 'coal_igcc_ccs'},
      {key: 'coal_pwd'},
      {key: 'coal_pwd_ccs'},
      {key: 'gas_ccgt'},
      {key: 'gas_ccgt_ccs'},
      {key: 'gas_conv'},
      {key: 'gas_turbine'},
      {key: 'must_run'}, # something's broken here
      {key: 'nuclear_iii'},
      {key: 'oil_plant'},
      {key: 'solar_pv'},
      {key: 'wind_turbines'},
    ]

  Node: class extends Backbone.Model

              attr("text-anchor", "middle").
              attr("class", "axis_label")

      # nodes
      @svg.selectAll('rect.merit_order_node').
        data(@nodes.models, (d) -> d.get('key')).
