add idempotency test, better example