private void setup() {
        multi = 0.20 + (0.001 * questData.getWin());
        if (multi > 0.6)
            multi = 0.6;

        if (questData.getMode().equals(forge.quest.data.QuestData.FANTASY)) {
            if (questData.getInventory().getItemLevel("Estates") == 1)
                multi += 0.01;
            else if (questData.getInventory().getItemLevel("Estates") == 2)
                multi += 0.0175;
            else if (questData.getInventory().getItemLevel("Estates") >= 3)
                multi += 0.025;
        }

        addListeners();

        //construct topTable, get all cards
        topModel = new CardShopTableModel(new CardList(), this);
        topModel.addListeners(topTable);

        topTable.setModel(topModel);
        topModel.resizeCols(topTable);

        //construct bottomModel
        bottomModel = new CardShopTableModel(this);
        bottomModel.addListeners(bottomTable);

        bottomTable.setModel(bottomModel);
        topModel.resizeCols(bottomTable);

        setSize(1024, 768);
        this.setResizable(false);
        Dimension screen = getToolkit().getScreenSize();
        Rectangle bounds = getBounds();
        bounds.width = 1024;
        bounds.height = 768;
        bounds.x = (screen.width - bounds.width) / 2;
        bounds.y = (screen.height - bounds.height) / 2;
        setBounds(bounds);
        //TODO use this as soon the deck editor has resizable GUI
//        //Use both so that when "un"maximizing, the frame isn't tiny
//        setSize(1024, 740);
//        setExtendedState(Frame.MAXIMIZED_BOTH);
    }//setupAndDisplay()