add broadcast function