refactor zk client