client generation