Add FactoryMethodPattern