         hideBalloon = =>
           @balloon.hide()
 
-        @timeout = setTimeout hideBalloon, 300
+        @balloon_timeout = setTimeout hideBalloon, 300
 
-  bindClick: (id) ->
-    @click =>
-      @balloon.startLoading()
+  click: ->
+    @balloon.startLoading()
 
-      Factlink.showInfo id, =>
-        @balloon.stopLoading()
+    Factlink.showInfo @id, =>
+      @balloon.stopLoading()
 
   destroy: ->
     for el in @elements


  bindFocus: ->
    @focus (e) =>
      clearTimeout(@timeout)

      @highlight()



class Factlink.Fact
  # If you want to support more events add them to this variable:
  _events: ["focus", "blur"]

  constructor: (id, elems) ->
    @id = id
    # Internal object which will hold all bound event handlers
    @_bound_events = {}

