improved updating