initialize next_gen as array to prevent current_gen becoming null, so
current_gen will always be an array