diff --git a/src/Taggers.jl b/src/Taggers.jl
index 206406fc76b8e4312a75756cd1311571270bab81..ddae1b3ab8971322b0a945ff86e65fad5793e1d8 100644
--- a/src/Taggers.jl
+++ b/src/Taggers.jl
@@ -226,26 +226,17 @@ function parsekwargs!(args, kwargs)
     return args
 end
 
-function run(tagger, switch, kwargs, extra...)
-    args = Any["--model-instance", tagger.model_instance]
-    for (p, v) in pairs(extra)
-        if !isnothing(v)
-            push!(args, p)
-            push!(args, v)
-        end
-    end
-    if !isnothing(tagger.sandbox)
-        push!(args, "--sandbox")
-        push!(args, tagger.sandbox)
-    end
+function run(tagger, switch, kwargs)
+    kwargs["model_instance"] = tagger.model_instance
+    kwargs["sandbox"] = tagger.sandbox
+    args = Any[]
     parsekwargs!(args, kwargs)
     cmd = tagging_backend_command(tagger)
-    Base.run(Cmd(`$(cmd) $(switch) $(args)`; dir=tagger.backend_dir))
+    Base.run(Cmd(`$cmd $switch $args`; dir=tagger.backend_dir))
 end
 
-function train(tagger::Tagger; pretrained_instance=nothing, kwargs...)
-    ret = run(tagger, "train", kwargs,
-              "--pretrained-model-instance" => pretrained_instance)
+function train(tagger::Tagger; kwargs...)
+    ret = run(tagger, "train", kwargs)
     @assert isdir(modeldir(tagger))
     return ret
 end
@@ -253,8 +244,8 @@ end
 predict(tagger::Tagger; kwargs...) = run(tagger, "predict", kwargs)
 
 function finetune(tagger::Tagger; original_instance=nothing, kwargs...)
-    ret = run(tagger, "finetune", kwargs,
-              "--original-model-instance" => original_instance)
+    kwargs["original_model_instance"] = original_instance
+    ret = run(tagger, "finetune", kwargs)
     @assert isdir(modeldir(tagger))
     return ret
 end