@Override
    public boolean init(List<String> argumentList, DebuggerVirtualMachine dvm) {
        breakpointLinesToClear = new ArrayList<String>();
        List<String> currentBreakpoints = new ArrayList<String>();

        for (int i = 1; i < dvm.getSourceLinesSize(); i++) {
            if (dvm.isBreakpointSet(i)) {
                currentBreakpoints.add(new Integer(i).toString());
            }
        }

        if (currentBreakpoints.isEmpty()) {
            UserInterface.println("There are no breakpoints currently set.\n");
            return false;
        }

        for (String arg : argumentList) {
            if (!currentBreakpoints.contains(arg)) {
                UserInterface.println(
                        arg + " is not a valid breakpoint line number.");
                UserInterface.print("Breakpoints can be cleared on lines: ");
                for (String lineNum : currentBreakpoints) {
                    UserInterface.print(lineNum + " ");
                }
                UserInterface.println("\n");
                return false;
            }
            breakpointLinesToClear.add(arg);
        }

        if (argumentList.isEmpty()) {
            breakpointLinesToClear = currentBreakpoints;
        }

        return true;
    }