use ISet instead of IEnumerable