basic design patterns - Search