commonly used design patterns - Search