client is single threaded, so sharing it is not good