Use Set instead of List to avoid redundant values
Add toString() for easier debugging