broadcasting with nil
protocol refactoring