number generation process