Added SimpleFactoryIdiom