implement user update