externalizes invariants