avoid multiple emit