component emitter uses _callbacks