improve listener remove