add preliminary http source download function