add broadcast api, use event emitter emit errors