add software offline download method