restructure and added some status message for downloading