Use a queue to track progress