Playing with design patterns.