Design patterns implementation