Design patterns example implemenations