Added the factory pattern