added join func