     # this method is called when we first render the chart. It is called if we
     # want a full chart refresh when the user resizes the browser window, too
     draw: =>
-      @margin = 50
-      @width = (@container_node().width()   || 490) - 2 * @margin
-      @height = (@container_node().height() || 402) - 2 * @margin
+      @margin =
+        top: 10
+        left: 45
+        bottom: 10
+        right: 10
+      @width = (@container_node().width()   || 490) - (@margin.left + @margin.right)
+      @height = (@container_node().height() || 452) - (@margin.top + @margin.bottom)
 
       # set up the scaling methods
       @x = d3.scale.linear().domain([0, 600]).range([0, @width])

  # cool but not flexible enough
  Node: class extends Backbone.Model
    @width: 100
    @horizontal_spacing: 280
    vertical_margin: 10

    initialize: =>

      d3.selectAll(".link").
        transition().
        duration(200).
        style("opacity", 0.6).
        selectAll(".link_label").
        transition().
        style("opacity", 0)
