add invariant checking