broadcast implementation (1st)