use Set when order is irrelevant