Added a full on DownloadManager with state!