update method improved