public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
		System.out.println(System.getProperty("java.class.path"));
        if ("loader".equalsIgnoreCase(args[0])) {
			connectToALoaderServer(args[1], Integer.valueOf(args[2]));
			return;
		} else {
			if ("default".equalsIgnoreCase(args[0])) {
				setLoader((Loader) Class.forName("argsboot.loader.DefaultLoader").newInstance());
			} else {
				setLoader((Loader) Class.forName(args[0]).newInstance());
			}
			load(ArrayUtils.asSet(args[2]));
		}
		OneCall theCall = new OneCall(Arrays.asList(Arrays.copyOfRange(args, 3, args.length)));
		Debugger.debug(() -> {
            int index = 0;
            for (String arg : args) {
                System.out.println(String.format("arg[%d] is %s", index++, arg));
            }
            System.out.println(theCall.toString());
        });
		String to_be_continued = theCall.call();
		if (TO_BE_CONTINUED.equals(to_be_continued) && !"-1".equals(args[1])) {
			establishALoaderServer(Integer.valueOf(args[1]));
		}
	}