more explicit downloader delegate protocol.
nil is a shit value to pass around.