Multi-language port of GoF patterns