fix listener bugs