Separated offline update function