design pattern - part-1 - creational patterns