Updated to find all images in 1 run, uses a fixed thread pool (takes longer), but manages memory better