AbstractFactory exam