Abstract Factory pattern is done.

Not the same, Abstract Factory and Factory Method are different
patterns!