restore download function