make client thread safe, its now safe to use signle client cross
multiple goroutines