Change listener to emit instead of broadcast