2.0 idempotency