Creating procedural design patterns