FactoryMethod Main