public Object invoke(
            ModuleInstance module,
            Object source,
            Object[] args,
            QvtOperationalEvaluationEnv evalEnv) {
          String self = (String) source;
          StringCounter counters = StringCounter.getInstance(evalEnv);
          Integer currentValue = counters.value(self);

          if (currentValue == null) {
            counters.start(self);
            return self;
          }

          counters.increment(self);
          return self + currentValue.toString();
        }