@Override
    public void display(UserInterface ui) {
        if (command == null) {
            UserInterface.println("Valid commands are:");
            UserInterface.println(
                    "  h c?            command list (no arguments), or help on a specific command c");
            UserInterface.println("  c               continue");
            UserInterface.println("  s               step over");
            UserInterface.println("  si              step in");
            UserInterface.println("  so              step out");
            UserInterface.println("  f               display current function");
            UserInterface.println("  b               list breakpoints");
            UserInterface.println(
                    "  b+ n*           list valid breakpoint lines (no arguments), or set breakpoint");
            UserInterface.println("                    at line(s) n");
            UserInterface.println(
                    "  b- n*           clear all breakpoints (no arguments), or a list of");
            UserInterface.println(
                    "                    breakpoints at line(s) n");
            UserInterface.println(
                    "  v [s i]*        display local variables (no arguments), or change variable");
            UserInterface.println(
                    "                    name(s) s followed by the new value(s) i");
            UserInterface.println(
                    "  r               re-execute the current function");
            UserInterface.println("  q               quit\n");
        } else {
            HelpCommand.displayHelp(command);
        }
    }