updated emitter-vs-callback