Abstract Job object to describe one download action, add a prototype of watcher to emit the save status change