Adding determinate progress indicator
Handle canceling correctly.