fix duplicated listener issue