Add progress callback
Use enumerate for counting