Added abstract factory example