fix event emission
use emit cascade