For the record, there's a convention for how to name the initializer proc (or func). Procs that return a value object start with `init` and procs that return a reference object start with `new`. The standard library uses this convention almost throughout (in the parts I used so far).
I'm not totally glad with the naming distinction for value/ref objects myself, but not following the convention may be confusing for readers of your code.