Added exercise 5 - Abstract factory implementation still missing