Add design pattern - Factory.