add abstract factory gif