dsgn pat - abstract factory clean up looks good
Revert "dsgn pat - abstract factory clean up looks good"

This reverts commit a9d64e7e3e87a616a84e13201ec9f60a6cb8a5e1.
Revert "Revert "dsgn pat - abstract factory clean up looks good""

This reverts commit e4f195ab5a4daace825a55714d2cd60764dda2b9.