download feature is added.
try to merge
some needed changes