       else
         k = @key
       @node_list = new namespace.NodeList(namespace.charts[k].data.nodes)
-      @link_list = new namespace.LinkList(namespace.charts[k].data.links)
+      @link_list = _.map namespace.charts[k].data.links, (l) -> new D3.sankey.Link(l)
       @initialize_defaults()
 
     # this method is called when we first render the chart. It is called if we

        .attr("y", (d) => @y(d.y_offset() + d.value() / 2) )

      # then transform the links
      @links.data(@link_list.models, (d) -> d.cid)
        .transition().duration(500)
        .selectAll("path")
        .attr("d", (link) => @link_line link.path_points())

    draw_links: =>
      # links are treated as a group
      links = @svg.selectAll('g.link')
        .data(@link_list, (d) -> d.cid)
        .enter()
        .append("svg:g")
        .attr("class", (l) -> "link #{l.left.get('id')} #{l.right.get('id')}")
