new broadcast algo