     openEasing: null
     closeEasing: null
 
-  state =
-    phase: 'closed'           # can be 'opening', 'opened', 'closing' and 'closed'
-    $anchor: undefined        # the element to which the tooltip is anchored
-    $tooltip: undefined       # the tooltiop element
-    position: undefined       # the position of the tooltip element relative to its anchor
-    whenActionDone: undefined # a promise for the current opening/closing animation's end
-    nextAction: undefined     # a function that will be called when the current action completes
+  state = u.config
+    phase: 'closed'      # can be 'opening', 'opened', 'closing' and 'closed'
+    $anchor: null        # the element to which the tooltip is anchored
+    $tooltip: null       # the tooltiop element
+    position: null       # the position of the tooltip element relative to its anchor
+    whenActionDone: null # a promise for the current opening/closing animation's end
+    nextAction: null     # a function that will be called when the current action completes
 
   reset = ->
     # Destroy the tooltip container regardless whether it's currently in a closing animation
-    close(animation: false)
-    config.reset()
+    close(animation: false).then ->
+      state.reset()
+      config.reset()
 
   align = ->
     css = {}

  doNextAction = ->
    if state.nextAction
      action = state.nextAction # give it another name before we set it to undefined
      state.nextAction = undefined
      action()

  ###*


    whenClosed

  ###*
  Displays a tooltip with text content when hovering the mouse over this element:

