Invariants

Don't merge - I just want to test the new interface.