private void addButtonSet(JPanel panel, String[] buttons, int rows, int leftPadding) {
        int row = 0;
        int column = 1;
        for (String numButton : buttons) {
            String[] sizeText = numButton.split(",");

            int width = SMALL_BUTTON_WIDTH;
            int sep = SMALL_BUTTON_SEP;
            int rowAdd = 1;

            if (sizeText[0].equalsIgnoreCase("L")) {
                width = LARGE_BUTTON_WIDTH;
                sep = sep * 2;
                rowAdd++;
            }

            if (!sizeText[1].equalsIgnoreCase("SPACER")) {
                JButton button = new JButton(sizeText[1]);
                button.setBounds(leftPadding + sep * row, PADDING + (BUTTON_HEIGHT + PADDING) * column, width, BUTTON_HEIGHT);
                if (sizeText[1].equalsIgnoreCase("\u2190")) {
                    button.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            String text = output.getText();
                            if (text.length() > 0) output.setText(text.substring(0, text.length() - 1));
                            if (output.getText().length() == 0) output.setText("0");
                        }
                    });
                } else if (sizeText[1].equalsIgnoreCase("=")) {
                    button.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent event) {
                            solver.solve(output.getText());
                        }
                    });
                } else if (sizeText[1].equalsIgnoreCase("AC")) {
                    button.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent event) {
                            output.setText("0");
                        }
                    });
                } else {
                    button.addActionListener(new SpecifiedActionListener(this, sizeText[2], sizeText[2].equalsIgnoreCase(".")));
                }
                button.setMargin(new Insets(0, 0, 0, 0));
                panel.add(button);
            }

            row += rowAdd;
            if (row >= rows) {
                row = 0;
                column++;
            }
        }
    }