First note that the internal structures of the library model have been adjusted a little to make GUI building a little easier, so use the code skeleton given as a starting point, you can complete the assignment without modifying this part of the code at all, leaving only the GUI components to complete. This assignment is also less linear from the persepective of which bit of the code to work on - there are several groups of classes and FXML objects that usefully developed "in parallel". There is, however, a sensible meta-level order in which to approach the assignment: 1. Build the three main menus (library, catalogue and patron): these share significantstructure - you really just need to change where the buttons point to. 2. Build empty or partial windows for everything else: so when you click a button in the main menu, something appears, even if it's a rudimentary or empty window. 3. Add the close buttons. Please note that the application contains multiple windows. 4. Add the components that don’t require lists. You should be able to complete the add patron windows entirely at this point. 5. Once you have a good idea about how to handle lists, complete the patron record and books menu. You can also partially complete many of the other windows (borrow, return and place holds – don’t worry about disabling and enabling the buttons at this point). 6. About this time you should also know how to select an item in a list, this will allow you to complete the borrow, return and place hold windows, except for enabling and disabling buttons. 7. In the end, you should now be able to implement the two table based windows (show catalogue and show available books), and polish off the last few touches remaining on the other windows (setting the properties to allow buttons to be enabled and disabled). So though there are a few windows to implement, by approaching the assignment in terms of