Deal with a prototype collision between the Iterable Join and variadic join by requiring multiple arguments.
Refactor the helper class pattern to basic function recursion within a helper namespace.