new version based on concurrent.futures, with more list functions too