added invariant-contract

Jay implemented this