bug fixed on removeListener