GOF patterns examples