use sharedClient