public VBox mainMenu(Stage stage) {
        //create everything!
        VBox container = new VBox();  //Creates a container to hold all Menu Objects.
        MenuBar mainMenu = new MenuBar();  //Creates our main menu to hold our Sub-Menus.
 
        //now add to the VBox
        container.getChildren().add(mainMenu);

        //now add to the menu!
        Menu file = new Menu("File");
        MenuItem newEntry = new MenuItem("New Entry");
        MenuItem open = new MenuItem("Open");
        MenuItem save = new MenuItem("Save");
        Menu export = new Menu("Export as...");
        MenuItem exit = new MenuItem("Quit");
        file.getItems().addAll(newEntry, open, save, export, exit);
        //now for the export!
        MenuItem saveTXT = new MenuItem("To .txt");
        MenuItem saveXML = new MenuItem("To .xml");
        export.getItems().addAll(saveTXT, saveXML);
        //now add the the menu!
        mainMenu.getMenus().add(file);
        
        //
        //now give them an action and handlers to all of them!!
        //
        
        //create a new entry!
        newEntry.setOnAction((ActionEvent event) -> {
            //make sure there are no duplicates!
            if (!this.newEntry) {
                //add a new list view...
                list.getItems().add(0, "New Entry");
           
                //update the old journal entry...
                updateJournalEntry(inputTitle.getText());
                
                scriptureText.setText("");
                topicsText.setText("");
            
                //set the focus and select!
                list.getFocusModel().focus(0);
                list.getSelectionModel().select(0);
                this.newEntry = true;
            }
        });
        
        //open a file!
        open.setOnAction((ActionEvent event) -> {
            //use the file chooser to grab the file path!
            FileChooser fileChooser = new FileChooser();
            fileChooser.setTitle("Open File");
            File grabFile = fileChooser.showOpenDialog(stage);
            
            //check it!
            if (grabFile != null) {
                //open it!
                journal.read(grabFile.getAbsolutePath());
                
                //create a new thread!
                list.getItems().clear();
                ListUpdater updater = new ListUpdater(dialogTextUpdater, list, updaterStage);
                UpdateGUI update = new UpdateGUI(updater, journal.getEntries());
                Thread thread = new Thread(update);
                thread.start();
                uploadDialog();
                
                //change this...
                isSaved = false;
                this.newEntry = false;
            }
        });
        
        //exit the program!
        exit.setOnAction((ActionEvent event) -> {
            //exit out of the program!
            if (this.newEntry || !isSaved) {
                //ask the user if they want to save...
                showDialog();
                
                if (grabInput == 0) {
                    //do this only if there is a new entry...
                    if (this.newEntry) {
                        saveNewEntry();
                    }
                    
                    //grab properties!
                    LoadProperties loadProp = new LoadProperties("/journal/rsc/Journal.properties");
                    //now grab the properties!
                    String filePath = loadProp.grabProperties(2);
                    //save all the ENTRIES!
                    journal.write(filePath); 
                }
            }
            
            //check this also...
            if (grabInput != 2) {
                Platform.exit();
            }
        });
        
        //save the file!
        save.setOnAction((ActionEvent event) -> {
            //check for New Entries!
            if (this.newEntry) {
                saveNewEntry();
            }
            //grab properties!
            LoadProperties loadProp = new LoadProperties("/journal/rsc/Journal.properties");
            //now grab the properties!
            String filePath = loadProp.grabProperties(2);
            //save all the ENTRIES!
            
            //update the selected item...
            updateJournalEntry(list.getSelectionModel().getSelectedItem());
            
            journal.write(filePath);
            //now save it!
            isSaved = true;
        });
        
        //save as an .txt file
        saveTXT.setOnAction((ActionEvent event) -> {
            //use the file chooser to grab the file path!
            FileChooser fileChooser = new FileChooser();
            fileChooser.setTitle("Save File");
            File grabFile = fileChooser.showSaveDialog(stage);
            String setFile = grabFile.getAbsolutePath() + ".txt";
            
            //grab the right entry...
            List<JournalEntry> entry = new ArrayList<>();
            entry.add(0, findEntry());
            
            //now write it!
            journal.write(entry, setFile);
        });
        
        //save as an .xml
        saveXML.setOnAction((ActionEvent event) -> {
            //use the file chooser to grab the file path!
            FileChooser fileChooser = new FileChooser();
            fileChooser.setTitle("Save File");
            File grabFile = fileChooser.showSaveDialog(stage);
            String setFile = grabFile.getAbsolutePath() + ".xml";
            
            //grab the right entry...
            List<JournalEntry> entry = new ArrayList<>();
            entry.add(0, findEntry());
            
            //now write it!
            journal.write(entry, setFile);
        });
        
        return container;
    }