public IEnumerable <(Card, int)> Draw(Hand hand, Board board, CardCollection graveyard) { return(deckDistribution.Select(kvp => (kvp.Key, kvp.Value - hand.Count(kvp.Key) - board.Count(kvp.Key) - graveyard.Count(kvp.Key))).Where(x => x.Item2 > 0)); }