Added Generated Abstract Factory as implementation of Abstract Factory pattern