two methods for download