Only to answer the question, “Is this something I do often”—in broad-sweeping terms, not necessarily applicable to this work or even Montage—there are two approaches to making a class "new-agnostic": one for the prototypical approach, and one for the Crockford closure class approach (which is often used in anything that cares about security against malice, e.g., Caja, i.e., stuff I’ve been exposed to). The goal is for the approach to fade as an implementation detail, and whether "new" is required, to be an ineffectual question of style. In the prototype style, you do as I do in Collections, check whether this is an instanceof the constructor, and re-call with new otherwise. In the Crockford style, you take advantage as I have here, that a function that returns an object can be called with "new", and the "this" will be discarded. With Object.create (or Crockford’s original Object.beget, inspired by this pattern), you can simulate the homogeneity requirement by returning an object that is an instance of the constructor.

But none of that is important right now. I can change it to `this.x` and be done with it. :+1: