Factory getters now require function defaults which return an object literal because objects can be modified by reference