keeping track of whether an item is downloaded and acting accordingly, should be moved to a receiver to avoid leaks