make loc_data_gen more efficient