proper broadcast function