appendParamOpt requires defaultVal