using set() for more efficiency