Final for design patterns project