why always remove the listener?