support idempotent projections