move generic download out