update diagram for abstract factory