Abstract factory exercises.