Implementing Gang of Four Design Patterns