major update: implement internal download manager