private Deck getDeck() {
        Deck deck = new Deck(currentGameType);
        deck.setName(currentDeckName);
        CardList list;
        String cardName;

        //always move "bottom" to main
        list = deckDisplay.getBottom();
        for (int i = 0; i < list.size(); i++) {
            if (!list.get(i).getCurSetCode().equals("")) {
                cardName = list.get(i).getName() + "|" + list.get(i).getCurSetCode();
            } else {
                cardName = list.get(i).getName();
            }
            deck.addMain(AllZone.getNameChanger().getOriginalName(cardName));
        }

        //if sealed or draft, move "top" to sideboard
        if (!currentGameType.equals(Constant.GameType.Constructed)) {
            list = deckDisplay.getTop();
            for (int i = 0; i < list.size(); i++) {
                cardName = list.get(i).getName() + "|" + list.get(i).getCurSetCode();
                deck.addSideboard(AllZone.getNameChanger().getOriginalName(cardName));
            }
            if (currentGameType.equals(Constant.GameType.Sealed))
                deck.addMetaData("PlayerType", currentDeckPlayerType);
        }
        return deck;
    }//getDeck()