Design pattern systems