LD2 - finished Abstract Factory code