GoF DesignPattern sample project