separating download and update methods