 "first" move from
      // the rest to make track.state == 'start'
      // first move is 'start', subsequent moves are 'move'
      var state = !info.started ? 'start' : 'move';
      info.started = true;
      this.fire(t, ct, state);
    },

    touchend: function(info, e) {
      var t = e.currentTarget;
      var ct = e.changedTouches[0];
      // only trackend if track was started and not aborted
      if (info.started && !info.abortTrack) {
        // reset started state on up
        