Added invariant support