direct update method