created generation.c (details in the source)