no more multiple join functions,
instead one function that takes an additional argument