func: should call progress