implement edit user function