Finished work on the abstract factories and added a Console version implementing them