anchor.diff:  		% download has started
   		%%
   		{download_started, Download} ->
  -			case is_pid(Subscriber) of
  -				true ->
  -					UpdatedDownload = Download::set(status, ?DL_ACTIVE),
  -					case UpdatedDownload::save() of
  -						{ok, SavedDownload} ->
  -            				Subscriber ! {on_download_started, Download};
  -						{error, Errors} ->
  -				   			{ok, [{errors, Errors}]}
  +			UpdatedDownload = Download::set(status, ?DL_ACTIVE),
  +			case UpdatedDownload::save() of
  +				{ok, SavedDownload} ->
  +					case is_pid(Subscriber) of
  +						true ->
  +            				Subscriber ! {on_download_started, [{download, Download}]}
  +					end;
  +				{error, Errors} ->
  +					case is_pid(Subscriber) of
  +						true ->
  +            				Subscriber ! {on_download_error, [{download, Download}, {errors, Errors}]}
  +					end
  +			end,
  +			loop(Account, Downloads, Subscriber);
  +			
  +		%%
  +		% download has finished
  +		%%
  +		{download_complete, Download} ->
  +			UpdatedDownload = Download::set(status, ?DL_COMPLETE),
  +			case UpdatedDownload::save() of
  +				{ok, SavedDownload} ->
  +					case is_pid(Subscriber) of
  +						true ->
  +            				Subscriber ! {on_download_complete, [{download, Download}]}
  +					end;
  +				{error, Errors} ->
  +					case is_pid(Subscriber) of
  +						true ->
  +            				Subscriber ! {on_download_error, [{download, Download}, {errors, Errors}]}
   					end
   			end,
   			loop(Account, Downloads, Subscriber)
  
positive.code: 		% download is not found
  		%%
  		{download_not_found, Download} ->
  			case is_pid(Subscriber) of
  				true ->
  					UpdatedDownload = Download::set(status, ?DL_NOT_FOUND),
  					case UpdatedDownload::save() of
  						{ok, SavedDownload} ->
              				Subscriber ! {on_download_not_found, Download};
  						{error, Errors} ->
  				   			{ok, [{errors, Errors}]}
  					end
  			end,
  			loop(Account, Downloads, Subscriber);
  
negative.code: 		% download has been accquired
  		%%
  		{download_accquired, Download} ->
  			UpdatedDownload = Download::set(status, ?DL_PENDING),
  			case UpdatedDownload::save() of
  				{ok, SavedDownload} ->
  					case is_pid(Subscriber) of
  						true ->
              				Subscriber ! {on_download_accquired, [{download, Download}]}
  					end;
  				{error, Errors} ->
  					case is_pid(Subscriber) of
  						true ->
              				Subscriber ! {on_download_error, [{download, Download}, {errors, Errors}]}
  					end
  			end,
  			loop(Account, Downloads, Subscriber);
  