added progress functionality