supporting customized output path