docs: function(filter) {
          this.filter = filter;
          var previousCache = this.cache;
          this.cache = [];
          // look through layer for features to remove from layer
          this.handleAdd({features: this.layer.features});
          // cache now contains features to remove from layer
          if (this.cache.length > 0) {
              this.caching = true;
              this.layer.removeFeatures(this.cache.slice());
              this.caching = false;
          }
          // now look through previous cache for features to add to layer
          if (previousCache.length > 0) {
              var event = {features: previousCache};
              this.handleAdd(event);
              if (event.features.length > 0) {
                  // event has features to add to layer
                  this.caching = true;
                  this.layer.addFeatures(event.features);
                  this.caching = false;
              }
          }
      }