tags: designPatterns