Exposed download function