Lets play with some design patterns