generate data final