fix bug when unbinding multiple listeners