public void start(String[] args) {
        try {
            if(args.length == 0) {
                processDirectoryTree(new File("."));
            } else {
                for(String arg : args) {
                    File fileArg = new File(arg);
                    if(fileArg.isDirectory()) {
                        processDirectoryTree(fileArg);
                    } else {
                        Pattern pattern = Pattern.compile(regex);
                        if(pattern.matcher(arg).matches()) {
                            strategy.process(new File(arg).getCanonicalFile());
                        }
                    }
                }
            }
        } catch(IOException e) {
            throw new RuntimeException(e);
        }
    }