code: function (length, cycles, position, iteration, ref, callback, scope) {
          var coords = _.isFunction(callback) && this.current();
  
          // validate parameter defaults
          _.isNil(length) && (length = this.length);
          _.isNil(cycles) && (cycles = this.cycles);
          _.isNil(position) && (position = this.position);
          _.isNil(iteration) && (iteration = this.iteration);
          _.isNil(ref) && (ref = this.ref);
  
          // use the constructor to set the values
          Cursor.call(this, length, cycles, position, iteration, ref);
  
          // send before and after values to the callback
          return coords && callback.call(scope || this, null, this.current(), coords);
      }
docs: Update length and cycle bounds
  
  @param {Number} [length=0]
  @param {Number} [cycles=1]
  @param {Number} [position=0]
  @param {Number} [iteration=0]
  @param {String} [ref]
  @param {Function} [callback] - receives `(err:Error, coords:Object, previous:Object)`
  @param {Object} [scope]