refactoring broadcasting join