My code is not matching up with the results. The output for the code should be: >>> Test Teacher class Teacher: Paul Tan(8 sunset way) IM101 added. IM102 added. IM101 cannot be added. IM101 removed. IM101 removed. IM102 removed. IM102 cannot be removed. Person class: public class Person { private String name; private String address; public Person(String name, String address) { this.name = name; this.address = address; } public Person(String address){ this.address = address; } public String getName(){ return name; } public String getAddress(){ return address; } public void setAddress(String address){ this.address = address; } public String toString() { return name + \"(\" + address + \")\"; } } Teacher sub class import java.util.ArrayList; public class Teacher extends Person { private int numCourses = 0; private ArrayList courses = new ArrayList(); public Teacher(String name, String address){ super(name,address); } @Override public String toString() { return \"Teacher: \" + super.toString(); } public boolean addCourse (String course){ for (int i = 0; i < numCourses; i++) { if (courses.get(i).equals(course)) return false; } courses.add(course); numCourses++; return true; } public boolean removeCourse (String course){ boolean found = false; int courseIndex = -1; for (int j = 0; j < numCourses; j++) { if (courses.get(j).equals(course)) { courseIndex = j; found = true; break; } } if (found) { for (int k = courseIndex; k < numCourses-1; k++) { courses.get(k+1); } numCourses--; return true; } else { return false; } } } Person Launcer System.out.println(\"\ \"); System.out.println(\">>> Test Teacher class\"); Teacher tch = new Teacher (\"Paul Tan\", \"8 sunset way\"); System.out.println(tch); String[] courses = {\"IM101\", \"IM102\", \"IM101\"}; for (String course: courses) { if (tch.addCourse(course)) { System.out.println(course + \" added.\"); } else { System.out.println(course + \" cannot be added.\"); } } for (String course: courses) { if (tch.removeCourse(course)) { System.out.println(course + \" removed.\"); } else { System.out.println(course + \" cannot be removed.\"); } } System.out.println(\"\ \"); Solution // edit the below method like this : public boolean removeCourse (String course){ boolean found = false; int courseIndex = -1; for (int j = 0; j < numCourses; j++) { if (courses.get(j).equals(course)) { courseIndex = j; found = true; break; } } if (found) { courses.remove(course); numCourses--; return true; } else { return false; } }.