Pattern Languages of Program Design 2 (v. 2)