CHANGE replaced the constructors for the factory methods