A library of software design patterns