Honestly DownloadItem should be an object which would be created like

```js
var item = new DownloadItem(download);
```

```js
item.update();
```

Or perhaps there is a benefit that I didn't see? If we use the prototype approach here, we can save memory thought