Which I think the factory class that previously existed was probably a bit much, I think it is cleaner to have this in an Object level factory (apply) method, rather than the class constructor.  I would even think about making the constructor private and forcing people to use methods on the Object.