- Implemented the Abstract Factory pattern