Move save logic to data_download and pass in error handler.
Add download category state (incomplete).
Partial status implementation