@Override
    public final CollectionMetricTokenizerStep<T> transform(Function<String, String> function) {
      checkNotNull(function);
      final Tokenizer transform = Tokenizers.transform(chainTokenizers(), function);
      tokenizers.add(transform);

      return this;
    }
    @Override
    public final CollectionMetricTokenizerStep<T> filter(Predicate<String> predicate) {
      checkNotNull(predicate);

      final Tokenizer filter = Tokenizers.filter(chainTokenizers(), predicate);

      tokenizers.add(filter);

      return this;
    }
 private Tokenizer chainTokenizers() {
   final Tokenizer tokenizer = Tokenizers.chain(tokenizers);
   tokenizers.clear();
   return tokenizer;
 }