class FunctionConfig {

    public Function createFunction(Geoclient geoclient) {
    log.debug("Attempting to create function {}", this.id);
    WorkArea workAreaOne = this.workAreaOneConfig.createWorkArea();
    WorkArea workAreaTwo = null;
    if (isTwoWorkAreaFunction()) {
        workAreaTwo = this.workAreaTwoConfig.createWorkArea();
        warnIfDuplicateFieldIds(workAreaOne, workAreaTwo);
    }
    DefaultConfiguration funConf = this.configuration;
    if (funConf == null) {
        log.warn("Function.configuration is null. Defaulting to new instance.");
        funConf = new DefaultConfiguration();
    }
    GeosupportFunction function = new GeosupportFunction(this.id, workAreaOne, workAreaTwo, geoclient, funConf);
    return function;
    }

    public  FunctionConfig(String id, WorkAreaConfig workAreaOneConfig, WorkAreaConfig workAreaTwoConfig,
        DefaultConfiguration configuration);
    public  FunctionConfig(String id, WorkAreaConfig workAreaOneConfig, WorkAreaConfig workAreaTwoConfig);

}