added progress mechanism for downloading