Assignment 3 - Customer Loan Accounts For this assignment, you are going to enhance the Loan Accounts Hierarchy that you created in Programming Assignment 2 by adding a Customer class with the following properties and methods: Properties: . • firstName - the customer's first name (String). lastName - the customer's last name (String). SSN - the customer's (String). • loanAccounts - an array list of loan accounts (ArrayList). Methods: . a constructor that accepts firstName, lastName, and SSN as parameters. getters for firstName, lastName, and SSN. • addLoanAccount(Loan Account account) - adds a loan to the array list of loans for this customer. • printMonthly Report() - prints all the information for all the accounts of this Customer. Utilizes the toString() method of the corresponding loan class. The output of the printMonthlyReport() method should match the sample output displayed below. Note: make sure your output matches the output below including number of decimal places displayed and $ and % characters. Use the following code in your main function to test your classes, just copy and paste it into your main method: // Create different loan objects, at least one of each type. CarLoan carloan1 = new CarLoan(25000.00, 4.9, 72, "IRQ3458977"); Carloan carloan2 = new CarLoan(12000.00, 5, 60, "NXK6767876"); Address property Address1 = new Address("321 Main Street", "State College", "PA", "16801"); Primary Mortgage property Loan1 = new Primary Mortgage (250000.00, 3.75, 360, 35.12, property Address1); Address property Address2 = new Address("783 Maple Lane", "State College", "PA", "16801"); Primary Mortgage property Loan2 = new Primary Mortgage(375000.00, 2.5, 360, 53.12, property Address2); UnsecuredLoan unsecuredLoan = new UnsecuredLoan(5000.00, 10.75, 48); Il create customers Customer customerA = new Customer("Tony", "Stark", "111-22-3333"); Customer customerB = new Customer("Gal", "Gadot", "444-55-6666"); Il add loans for the customers. customerA.addLoan Account(carLoan1); customerA.addLoan Account(property Loan 1); customerA.addLoan Account(unsecured Loan); customerB.addLoan Account(carLoan2); customerB.addLoan Account(property Loan2); ll add the customers to an arraylist of customers. ArrayList(); customers.add(customerA); customers.add(customerB); l/Print out the loan information for each customer polymorhically. System.out.println("Monthly Report of Customers by Loan Account"); for (Customer customer customers) for (Customer customer customers) { System.out.println(customer.printMonthly Report()); } The output from your program should look like the following: run: Monthly Report of Customers by Loan Account Account Report for Customer: Tony Stark with SSN 111-22-3333 Car Loan with: Principle: $25000.00 Annual Interest Rate: 4.90% Term of Loan in Months: 72 Monthly Payment: $401.46 Vehicle VIN: IRQ3458977 Primary Mortgage Loan with: Principle: $250000.00 Annual Interest Rate: 3.75% Term of Loan in Months: 360 Monthly Payment: $1157.79 PMI Monthly Amount: $35.12 Property Address: 321 Main Street State College, PA 16801 Unsecured Loan with: Principle: $5000.00 Annual Interest Rate: 10.75% Term of Loan in Months: 48 Monthly Payment: $128.62 Account Report for Customer: Gal Gadot with SSN 444-55-6666 Car Loan with: Principle: $12000.00 Annual Interest Rate: 5.00% Term of Loan in Months: 60 Monthly Payment: $226.45 Vehicle VIN: NXK6767876 Primary Mortgage Loan with: Principle: $375000.00 Annual Interest Rate: 2.50% Term of Loan in Months: 360 Monthly Payment: $1481.70 PMI Monthly Amount: $53.12 Property Address: 783 Maple Lane State College, PA 16801