~removed 'design by contract' as opposite to 'defensive programming'