Factory Design Pattern is added.