Pass arguments in signals.
`finish` -> `complete`.

Update some comments.

Make sure `complete` is always called.