     vis.attr("width", width).attr("height", height)
 
   redraw = ->
-    console.log 'here', d3.event.translate, d3.event.scale
-    translation = d3.event.translate
-    tx = translation[0]
-    ty = translation[1]
-
-    minX = -600 * d3.event.scale
-    maxX = 1100 * d3.event.scale
-    minY = -400 * d3.event.scale
-    maxY = 800 * d3.event.scale
-
-    if translation[0] < minX
-      tx = minX
-    else if translation[0] > maxX
-      tx = maxX
-
-    if translation[1] < minY
-      ty = minY
-    else if translation[1] > maxY
-      ty = maxY
-    child.attr 'transform', 'translate(' + [tx, ty] + ')' + ' scale(' + d3.event.scale + ')'
+    # console.log 'here', d3.event.translate, d3.event.scale
+    child.attr 'transform', 'translate(' + d3.event.translate + ')' + ' scale(' + d3.event.scale + ')'
     return
 
   # The update() function performs the bulk of the

  maxRadius = 0

  maxScale = 2.0
  minScale = 0.75

  # allData will store the unfiltered data
  fullJson = null

    updateTerms(fullJson)
    allData = setupData(data)

    zoom = d3.behavior.zoom().translate([width/4, height/8]).scale(0.6).scaleExtent([minScale, maxScale]).on("zoom", redraw)

    # create our svg and groups
    vis = d3.select(selection).append("svg")
