improve tab update to remove old listeners