design patterns in serveral languages