edit FactoryMethod