If it's not on the prototype we have to pass around `this` to random helper functions, which gets super messy. JS is open, I think it's easier to just embrace that. We could `_` prefix to indicate they are only for internal use?