added client pure virtual class and tests cases