public static void main(String[] args) {
        CommandLineParser parser = new BasicParser();

        putOptions();

        if (args.length < 2) {
            usage(options);
            return;
        }

        getFuncyWithIt();

        try {
            CommandLine line = parser.parse(options, args);
            StringBuilder inputStringBuilder = new StringBuilder();
            Arrays.asList(line.getArgs()).stream().forEach(s -> inputStringBuilder.append(s).append(" "));

            String s = inputStringBuilder.toString().trim();

            for (Option arg : line.getOptions()) {
                String opt = arg.getOpt();
                String oparg = line.getOptionValue(opt);
                if (oparg != null) {
                    s = String.valueOf(bifunctions.get(opt).apply(s, oparg));
                } else {
                    s = String.valueOf(functions.get(opt).apply(s));
                }
            }

            System.out.print(!s.equals("null") ? "\n- Output -\n>>> ".concat(s).concat(s.endsWith("\n") ? "" : "\n") : "");
        } catch (UnrecognizedOptionException e) {
            usage(options);
        } catch (MissingArgumentException e) {
            System.out.println("Missing argument for one or more options.");
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }