improve list generation