broadcast, wip
Use sync.Cond
Better
Simplify