URGENT – PLEASE MAKE SURE ALL THE BELOW REQUIREMENTS ARE MET.*** Please let me know if you have nay questions or need clarification. I do expect an A-Grade work.Design, implement and test a Java application that will read a file containing data related to the passengers on the Titanic. The description of the file is shown below. The application should provide statistical results on the passengers including: Total number of passengers on the Titanic Percentage of passengers who perished on the Titanic Percentage of Passengers who survived the sinking of the Titanic Percentage passengers who survived the sinking of the Titanic as a function of the passenger class (e.g. 1,2,3) A list of the names of passengers who were less than 10 years old who perished on the Titanic The count of the number of passengers as a function of the first letter of their last name. (e.g., A: 13, B:33 …) At least one additional statistical results you add to enhance the functionality The following are some design criteria and specific requirements that need to be addressed: Use command line arguments to send in the name of the Titanic file. Use a 2D array to store the Titanic data. (Hint: You will probably need to store the array as String values and then convert to other types as needed since some data is null) You should create at least 2 Java classes – Titanic and TestTitanic. You are welcome to create additional classes if you want to further separate the functionality. You should create separate methods for each of the required functionality. (e.g. getTotalPassengers() will return the total number of passengers on the Titanic.) A user-friendly and well-organized menu should be used for users to select which data to return. A sample menu is shown in run example. You are free to enhance your design and you should add additional menu items and functionality. The menu system should be displayed at the command prompt, and continue to redisplay after results are returned or until Q is selected. If a user enters an invalid menu item, the system should redisplay the menu with a prompt asking them to enter a valid menu selection The application should keep track of the elapsed time (in seconds) between once the application starts and when the user quits the program. After the program is exited, the application should provide a prompt thanking the user for trying the Titanic program and providing the total time elapsed. ***Programming instructionsDesign (5 points) – Exhibits proper use of parameters, and selection of data types all of the time. Employs correct and appropriate use of programming structures (loops, conditionals, classes etc.) all of the time. Efficient algorithms used all of the time.Functionality (10 points) – Extra effort was apparent through the addition of significant and additional functionality beyond the scope of the assignment.Test cases (5 points) – Test cases provide comprehensive coverage of all code paths. Discussion of run-time errors included.Java Style Guide (5 points) – Code impeccably neat and well-organized. Extensive In-line comments providing additional insight into code design and functionality***Submission requirements:Your deliverables should include a single word document. Your word document should include screen captures showing the successful compiling and running of each application, and a detailed description of the test plan for each application. The screen captures should document your successful use of the IDE. The test plan should include the input, expected output, actual output and if the test case passed or failed.