@Override
  public ConfigurationRuleBuilder perform(Operation operation) {
    for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) {
      operation = interceptor.perform(operation);
    }

    rule.perform(operation);
    return this;
  }
  @Override
  public ConfigurationRuleBuilderPerform perform(Operation operation, Operation... operations) {
    List<Operation> list = new LinkedList<Operation>();
    list.add(operation);
    list.addAll(Arrays.asList(operations));

    for (ConfigurationRuleBuilderInterceptor interceptor : interceptors) {
      list = interceptor.perform(list);
    }

    rule.perform(Perform.all(list.toArray(new Operation[list.size()])));
    return this;
  }