Opening drill
Liskov substitution and behavioral contracts | Aporeon