eners as mouse retargets
      document.addEventListener('mousemove', movefn);
      document.addEventListener('mouseup', upfn);
    },

    touchmove: function(info, e) {
      var t = e.currentTarget;
      var ct = e.changedTouches[0];
      // if track was aborted, stop tracking
      if (info.abortTrack) {
        return;
      }
      e.preventDefault();
      // the first track event is sent after some hysteresis with touchmove.
      // Use `started` state variable to differentiate the