Repository demonstrating Abstract Factory design pattern