Add FactoryMethod