         .attr("fill", (d, i) -> d.get('color') || colors(i))
         .style("stroke", (d, i) -> d3.rgb(d.get('color') || colors(i)).darker(2))
         .style('stroke-width', 1)
-        .attr("width", D3.sankey.Node.width)
+        .attr("width", (d) -> d.width)
         .attr("height", (d) => @y d.value())
 
       nodes.append("svg:text")

        offset += n.value() + margin
      offset

    x_offset: => @get('column') * (D3.sankey.Node.width + D3.sankey.Node.horizontal_spacing)

    # center point of the node. We use it as link anchor point
    x_center: => @x_offset() + D3.sankey.Node.width / 2

    # The height of the node is the sum of the height of its link. Since links
    # are both inbound and outbound, let's use the max size. Ideally the values

  # In this chart most positioning is calculated by us. The D3 sankey plugin is
  # cool but not flexible enough
  Node: class extends Backbone.Model
    width: 20
    horizontal_spacing: 170
    vertical_margin: 10

    initialize: =>
