refactor downlaoder
merge