fix download_button(): more flexible API, in particular: allow essential parameters to be passed