   hoverTarget = (inTarget) -> (e) ->
     $target = $(e.currentTarget)
     ttActions = instances[$target.data(uidStr)]
-    if ttActions
+    if ttActions #this is a known (i.e. open) tooltip
       ttActions.setTargetHover inTarget
-    else if inTarget
+    else if inTarget #target has no tooltip but is hovered
       openInstance $target
 
   $el.hoverIntent

  openInstance = ($target) ->
    instId = 'tt' + instCounter++
    inTooltip = false
    inTarget = true

    $tooltip = options.makeTooltip $el, $target
    $tooltip.hoverIntent

  #makeTooltip: $el, $target -> $tooltip
  #removeTooltip: $el, $target, $tooltip ->

ttCounter = 0 #each call to TooltipJQ gets its own id based on this.

#returns an object with a close method which when called
#removes all open tooltips
Backbone.Factlink.TooltipJQ = (options) ->
  uid = ttCounter++
  uidStr = 'tooltipUid-' + uid
  instCounter = 0 #one call can cause multiple tooltips
  #we track each tooltip using the instCounter and store them
  #in `instances`: this means we can close them not just
  #in reponse to an event handler, but also on request
  instances = {}

  $el = options.$el
