zk client programming