fixed add listener bug