Switching to invariant as per @zpao