only generate when a new chunk is called