         )
       )
 
-    # Methods
-
-    # - The main toggler. Takes in a callback, which is usually to update position.
-    #   The toggling and main changes only happen if the delay is passed.
-    #   1. Store current trigger info.
-    #   2. Go directly to the position updating if no toggling is needed.
-    #   3. Don't toggle if awake or waking, or if event isn't `truemouseenter`.
-    #   4. If we are in the middle of sleeping, stop and speed up our waking
-    #      transition.
-    #   5. Update our trigger cache.
+    # `wakeByTrigger` is the main toggler and a `_state` updater. It takes an
+    # `onWake` callback, which is usually to update position. The toggling and
+    # main changes only happen if the delay is passed. It will return a bool for
+    # success.
     wakeByTrigger: ($trigger, event, onWake) ->
-      # - Check.
+      # Store current trigger info.
       triggerChanged = not $trigger.is @_$currentTrigger
       if triggerChanged
         @_inflateByTrigger $trigger
         @_$currentTrigger = $trigger
-      # - Guard.
+      # Go directly to the position updating if no toggling is needed.
       if @_state is 'awake' and onWake?
         onWake()
         @debugLog 'quick update'
         return yes
       if event? then @debugLog event.type
+      # Don't toggle if awake or waking, or if event isn't `truemouseenter`.
       return no if @_state in ['awake', 'waking']
-      # - Prepare.
       delay = @ms.delay.in
       duration = @ms.duration.in
+      # Our `wake` subroutine runs the timed-out logic, which includes the fade
+      # transition. The latter is also affected by `safeToggle`. The `onShow`
+      # and `afterShow` hook methods are also run.
       wake = =>
         @onShow triggerChanged, event
         @$tip.fadeIn duration, =>

        @_bindTrigger $trigger
        @_updateDirectionByTrigger $trigger

    # ###Protected

    _defaultHtml: ->
      directionClass = $.trim(
        _.reduce @defaultDirection, (classListMemo, directionComponent) =>

          if @_$currentTrigger?
            @_$currentTrigger.data @attr('is-active'), no
            @sleepByTrigger @_$currentTrigger
      # Additionally, track viewport `_bounds` at a reasonable rate, so that
      # `_updateDirectionByTrigger` can work properly.
      if @autoDirection is on
        $(window).resize _.debounce @_setBounds, 300

    # `_render` comes with a base implementation that fills in and attaches
    # `$tip` to the DOM, specifically at the beginning of `$context`. It uses
    # the result of `htmlOnRender` and falls back to that of `_defaultHtml`.
    _render: ->
      return no if @$tip.html().length
      html = @htmlOnRender()
