download_item refactor