         @use_present = true
       else
         k = @key
-      @node_list = new namespace.NodeList(namespace.charts[k].data.nodes)
+      @node_map = {}
+      @node_list = _.map namespace.charts[k].data.nodes, (n) =>
+        node = new D3.sankey.Node(n)
+        @node_map[n.id] = node
+        node
       @link_list = _.map namespace.charts[k].data.links, (l) -> new D3.sankey.Link(l)
       @initialize_defaults()
 

    draw_nodes: =>
      colors = d3.scale.category20()
      nodes = @svg.selectAll("g.node")
        .data(@node_list.models, (d) -> d.get('id'))
        .enter()
        .append("g")
        .attr("class", "node")

          if link.value() == 0.0 then 'none' else 'inline'
        )

    # returns the height of the tallest column
    max_column_value: =>
      sums = {}
      for n in @node_list
        column = n.get 'column'
        sums[column] = sums[column] || 0
        sums[column] += n.value()
      _.max _.values(sums)
