       g.append('g')
         .attr('class', 'y axis')
         .call(y_axis)
+
+      g.append('rect')
+        .attr('width', width)
+        .attr('height', height)
+        .attr('fill', 'none')
+        .attr('pointer-events', 'all')
+        .on('mousemove', (d, i) -> mouse_moves.push d3.mouse @)
 
       target = g.selectAll('.target')
           .data(targets)

        .withStateMachine([], (previous, event) -> [[event], previous])
        .filter (e) -> e.classed?
      unhovers.onValue '.classed', 'hovered', false

      if type is 'line'
        area_opacity = params.areaAlpha

      mouse_over = new Bacon.Bus
      mouse_out = new Bacon.Bus
      clicks = new Bacon.Bus
      mouse_moves = new Bacon.Bus
      observe_mouse = (s) ->
        s.on('mouseover', (d, i) -> mouse_over.push {index: i, event: d3.event, data: d})
         .on('mouseout', (d, i) -> mouse_out.push {index: i, event: d3.event, data: d})
