refactor download package