Way to go improving this with sets