docs: function rollbackTo(version) {
              var versions, rollbackCallback,
                  config = this.constructor.config,
                  snapshots = this.$$snapshots,
                  snapshotsLength = this.$$snapshots ? this.$$snapshots.length : 0;
  
              // if an invalid snapshot version was specified then don't attempt to do anything
              if (!angular.isArray(snapshots) || snapshotsLength === 0 || !angular.isNumber(version)) {
                  return false;
              }
  
              versions = snapshots.splice(Math.max(0, Math.min(version, snapshotsLength - 1)));
  
              if (!angular.isArray(versions) || versions.length === 0) {
                  return false;
              }
  
              rollbackCallback = versions[0].$rollbackCallback;
              angular.extend(this, (config.snapshotSerializer || config.serializer).deserialize(versions[0]));
  
              // restore special variables
              this.$$snapshots = snapshots;
              delete this.$rollbackCallback;
  
              if (angular.isFunction(rollbackCallback)) {
                  rollbackCallback.call(this);
              }
  
              return true;
          }