Some GoF patterns implementations