reimplemented downloading
merge conflicts