let url_change_arg (key:string) (value:string) url = 
  let (base,args) = url_split_args url in 
  let larg = Str.split (Str.regexp "&") args in 
  let rec update_arg l b = match l with 
    | []   -> if b then [] else [ key^"="^value ]
    | x::c -> let sl = Str.split (Str.regexp "=") x in
        if ((List.hd sl) = key) then 
          (key^"="^value)::(update_arg c true)
        else x::(update_arg c falsein 
  let nargs = String.concat "&" (update_arg larg falsein 
    if (nargs = ""then base else base^"?"^nargs