There is actually an upside to breaking convention here, by not maintaining consistency in the constructors (and really why should we?) users can be encouraged to use the helpers module which hide any complexity of creating the objects.

Let me know what you think and I'll make whatever changes you prefer.