reduce the number of useless emit call