In class Hand, made all sets of cards (keepers, discarded) immutable. I have been thinking about the best way to make sure these sets stay the correct size, and I think this might be the best way. Outside classes like Solver can still have a look at these sets, but they cant change them.