private void startGenerating() {

			// check if number CAN be sorted
			boolean sortCheck = Lib.checkInput(gui.getTextFields(), gui.getRingNumber());

			// if number not sortable throws errorMsg
			if (sortCheck) {

				// divide fighters
				int[] sortingFacts = Lib.PoolDivide(gui.getTextFields(), gui.getRingNumber());

				// send in facts and get fighters sorted in correct number ofpools
				List<List<String>> allPoolsWithFighters = Lib.poolGenerator(gui.getTextFields(), sortingFacts);

				// New FileChooser for saving
				gui.newFileChooser();

				int k = gui.getFileChooser().showSaveDialog(gui.getFileChooser()); // show
																					// chooser
																					// window
				try {
					if (k == JFileChooser.APPROVE_OPTION) {

						// generate sorting
						for (int i = 0; i < sortingFacts[2]; i++) {
							try {
								String[] sortedFighters = (String[]) sortingSystem.newSorting(allPoolsWithFighters.get(i));

								pdfGenerator.newPdf(allPoolsWithFighters.get(i), sortedFighters, i, gui.getFileChooser().getSelectedFile().getCanonicalPath(), gui.getTournamentNameField(), gui.getWeightBox(), gui.getGenderBox());
							} catch (IllegalArgumentException e) {
								gui.errorMsg("Cant sort numbers");
								break;
							}
						}

						// initiates successwindow...
						gui.startSuccesWindow();
					}

				} catch (Exception e1) {
					gui.errorMsg("Failed to instantiate sorting");
					e1.printStackTrace();
				}

			} else {
				gui.errorMsg("You must enter valid numbers" + "\n" + "And fill all textfields" + "\n" + "Please try again");
				return;
			}
		}