Split download into with-download and with-download-progress macros
Add documentation