applied patterns design