client side of etcd