Abstract client update