         return
 
       relative = absoluteHref.slice(root.length)
+
+      # TODO
+      # this is triggered twice per click. why ?
+      console.log 'relative anchor click', relative
 
       cb
         event: event

      throw new Error 'missing argument'

    el.addEventListener 'click', (event) ->
      unless event.target.tagName is 'A'
        return
      # does the element have attribute `data-bypass` ?
      if event.target.dataset.bypass?
        return

      # don't break the users ability to open links in a new tab !
      if event.ctrlKey or event.metaKey
        return

      href = event.target.getAttribute('href')
      absoluteHref = event.target.href

      root = getBrowserUrlProtocolHost()


    # (every time a relative anchor is clicked the path cursor is updated)
    onRelativeAnchorClick window, (data) ->
      data.event.preventDefault()
      data.event.stopPropagation()
      console.log 'relative anchor click', data.relative
      setBrowserPath data.relative
      pathCursor.set(data.relative)
