added client generation implementation