private void makeTableDisplay() {
		List<List<String>> table = null;
		TableView<Row> tableView = new TableView<>();
		tableView.setId("table");
		if (!expression.getText().equals("")) {
			//switch to handle the selected mode
			if (outputMode.equals("Compact")) {
				CompactTableGenerator compTable = new CompactTableGenerator();
				table = compTable.getTable();
			} else {
				FullTableGenerator fullTable = new FullTableGenerator();
				table = fullTable.getTable();
			}
			//convert to rows.
			List<Row> rowList = new ArrayList<>();
			for (int i = 1; i < table.size(); i++) {
				Row newRow = new Row(table.get(i));
				rowList.add(newRow);
			}
			ObservableList<Row> tableRowList = FXCollections.observableArrayList(rowList);

			LaTeXConverter lc = new LaTeXConverter();
			for (int i = 0; i < table.get(0).size(); i++) {
				final int j = i;
				TableColumn<Row, String> column = new TableColumn<>();
				String head = lc.toTex(table.get(0).get(i));
				if (!expression.getText().equals("")) {
					column.setGraphic(
							new ImageView(ImageGetter.getTeXImage(head)));
				}
				column.setCellValueFactory(new Callback<CellDataFeatures<Row, String>, ObservableValue<String>>() {
					public ObservableValue<String> call(CellDataFeatures<Row, String> r) {
						// r.getValue() returns the Row instance for a particular TableView row
						return r.getValue().getDataAt(j);
					}
				});

				// keeps columns from being sorted
				column.setSortable(false);

				tableView.getColumns().add(column);
			}
			tableView.setItems(tableRowList);
		}
		tableArea.setPadding(new Insets(7, 0, 0, 0));
		tableArea.setCenter(tableView);
	}