add AbstractFactory examples