generation in client