factory, Creational Patterns