Creational.Factory pattern implementation