Create abstract_factory.h