added progress tracking