add progress bar support