commit abstract factory design pattern mark down page.