support non-public broadcasts
remove unnecessary functions
stop on error
added more error handlers
bug fix