       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})

      g.append('g')
        .attr('class', 'y axis')
        .call(y_axis)

      target = g.selectAll('.target')
          .data(targets)

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

      mouse_position = mouse_moves.map (pos) ->
        time: x.invert pos[0]
        value: y.invert pos[1]

      if type is 'line'
        area_opacity = params.areaAlpha
