Replaced the constructors with factory methods (called create())