Protects invariants
Protects invariants with events
Protects invariants by not resulting in events