Add initial design patterns project