avoid listeners duplicates by switch List to Set