protected void GetFirstPieces(int howMany, out DeckObservableDict <D> thisList)
        {
            if (ObjectList !.Count == 0)
            {
                throw new Exception("There must be at least one piece in order to get the first pieces");
            }
            thisList = new DeckObservableDict <D>(); //i think.
            if (RemainingList.Count < howMany)
            {
                throw new Exception("There are only " + RemainingList.Count + " but was trying to get " + howMany + " pieces");
            }
            ICustomBasicList <D> newList;

            newList = RemainingList.GetRandomList(true, howMany);
            if (RemainingList.Count == 0)
            {
                throw new Exception("Can't have 0 pieces remaining after getting random list");
            }
            foreach (var thisCard in newList)
            {
                thisCard.IsUnknown = false;
            }
            thisList.ReplaceRange(newList);
        }