refactor Deck to use Set rather than [] to prevent duplicate cards