Abstract Factory commit