begin a recursive download function