class OptionsWithArguments extends MutableCapabilities {

    private static final long serialVersionUID = -5948442823984189597L;

    private String capability;

    private List<String> args = new ArrayList<>();

    public OptionsWithArguments(String browserType, String capability) {
        setCapability(CapabilityType.BROWSER_NAME, browserType);
        this.capability = capability;
    }

    public OptionsWithArguments addArguments(String... arguments) {
        addArguments(Collections.unmodifiableList(Arrays.asList(arguments)));
        return this;
    }

    public OptionsWithArguments addArguments(List<String> arguments) {
        args.addAll(arguments);
        return this;
    }

    @Override
    public Map<String, Object> asMap() {<FILL_FUNCTION_BODY>}

}

        Map<String, Object> toReturn = new TreeMap<>(super.asMap());
        Map<String, Object> options = new TreeMap<>();
        options.put("args", Collections.unmodifiableList(args));
        toReturn.put(capability, options);
        return Collections.unmodifiableMap(toReturn);
    
<no_super_class>