AbstractFactory.h added