updated invariance