Updated Factory Module to include AbstractFactory and FactoryMethod