Using design patterns