Modify abstract_factory.go