Defensive programming needs preconditions...