generation script