Opening drill
Model objects around responsibilities and invariants | Aporeon