method cache ?key ?url ?debug () =
    let args = ref [] in
    may (fun v ->
           args := sv_of_string "key" :: sv_of_string v :: !args) key;
    may (fun v ->
           args := sv_of_string "url" :: sv_of_string v :: !args) url;
    may (fun v ->
           args := sv_of_string "debug" :: sv_of_int v :: !args) debug;
    let sv = call_method sv "cache" !args in
    new net_google_cache sv