even stricter invariant