@Override
    public void run() {
        // get student folder
        File studentFolder;
        if (main.arguments.length >= 2 && main.arguments[1].length() > 1) {
            studentFolder = lib.recognize.find(main.arguments[1]);
        } else {
            File root = new File(System.getProperty("user.dir"));
            File[] studentList = root.listFiles(new FileFilter() {
                public boolean accept(File file) {
                    return file.isDirectory();
                }
            });
            studentFolder = (File) lib.Console.menu(studentList);
            if( studentFolder == null){
                System.err.println("Could not find the right student folder.");
                return;
            }
        }
        // get assignment number
        File assignmentFolder;
        if (main.arguments.length >= 3 && main.arguments[2].length() >= 1) {
            assignmentFolder = lib.recognize.find(main.arguments[2], studentFolder.toString());
        } else {
            int assignmentNumber = lib.Console.inputInteger("What assignment?");
            assignmentFolder = lib.recognize.find(Integer.toString(assignmentNumber), studentFolder.toString());
        }
        // check that it is found
        if (assignmentFolder == null || !assignmentFolder.exists()) {
            System.err.println("Could not find the right assignment folder.");
            return;
        }
        // 
        File[] javaFiles = assignmentFolder.listFiles(new FilenameFilter() {
            public boolean accept(File directory, String fileName) {
                return fileName.endsWith(".java");
            }
        });
        if (javaFiles.length > 1) {
            test.runAllFiles(javaFiles);
        } else {
            test.runFile(javaFiles[0]);
        }
    }