make much faster using Set