zh adds abstract class Client