Added removeEventListener to prevent stacking