Make StructureTerm constructor a varags format

This cleans up the allocation of many StructureTerms.
diff --git a/src/builtin/PRED_$call_2.java b/src/builtin/PRED_$call_2.java
index 32d3904..b9ace54 100644
--- a/src/builtin/PRED_$call_2.java
+++ b/src/builtin/PRED_$call_2.java
@@ -53,10 +53,11 @@
 		    if ((engine.getUnknown()).equals("fail"))
 			return engine.fail();
 
-		    Term[] fa = {SymbolTerm.makeSymbol(functor), new IntegerTerm(arity)};
-		    Term[] r = {a1, new StructureTerm(SYM_SLASH_2, fa)};
-		    Term what = new StructureTerm(SYM_COLON_2, r);
-
+		    Term what = new StructureTerm(SYM_COLON_2,
+		       a1,
+		       new StructureTerm(SYM_SLASH_2,
+		         SymbolTerm.makeSymbol(functor),
+		         new IntegerTerm(arity)));
 		    ExistenceException err = new ExistenceException(this, 0, "procedure", what, e.getMessage());
 		    err.initCause(e);
 		    throw err;
diff --git a/src/builtin/PRED_$get_instances_2.java b/src/builtin/PRED_$get_instances_2.java
index 4d778cf..2873e9b 100644
--- a/src/builtin/PRED_$get_instances_2.java
+++ b/src/builtin/PRED_$get_instances_2.java
@@ -41,17 +41,8 @@
 	    int i = ((IntegerTerm)car).intValue();
 	    Term e = engine.internalDB.get(i);
 	    if (e != null) {
-		Term[] arg = {e, car};
-		x = new ListTerm(new StructureTerm(COMMA, arg), x);
-	    } 
-	    //	    else {
-	    //		System.out.println("index " + i + " is deleted.");
-	    //	    }
-
-	    //	    if (e == null)
-	    //		throw new SystemException("invalid index");
-	    //	    Term[] arg = {e, car};
-	    //	    x = new ListTerm(new StructureTerm(COMMA, arg), x);
+		x = new ListTerm(new StructureTerm(COMMA, e, car), x);
+	    }
 	    tmp = ((ListTerm)tmp).cdr().dereference();
 	}
 	if (! a2.unify(x, engine.trail))
diff --git a/src/builtin/PRED_atom_concat_3.java b/src/builtin/PRED_atom_concat_3.java
index 48f5875..77e4dec 100644
--- a/src/builtin/PRED_atom_concat_3.java
+++ b/src/builtin/PRED_atom_concat_3.java
@@ -33,8 +33,7 @@
 			       SymbolTerm.makeSymbol(str3.substring(i, endIndex))};
 		t = new ListTerm(new StructureTerm(AC_2, args), t);
 	    }
-	    Term[] args12 = {a1,a2};
-	    return new PRED_$member_in_reverse_2(new StructureTerm(AC_2, args12), t, cont);
+	    return new PRED_$member_in_reverse_2(new StructureTerm(AC_2, a1, a2), t, cont);
 	} else if (! a3.isVariable()) {
 	    throw new IllegalTypeException(this, 3, "atom", a3);
 	}
diff --git a/src/builtin/PRED_open_4.java b/src/builtin/PRED_open_4.java
index f4a2c88..24e482c 100644
--- a/src/builtin/PRED_open_4.java
+++ b/src/builtin/PRED_open_4.java
@@ -111,16 +111,12 @@
 	    }
 	    tmp = ((ListTerm) tmp).cdr().dereference();
 	}
-	Term[] args1 = {SYM_TEXT};
-	Term[] args2 = {a2};
-	Term[] args3 = {SymbolTerm.makeSymbol(file.getAbsolutePath())};
-	opts = new ListTerm(new StructureTerm(SYM_TYPE_1, args1), opts);
-	opts = new ListTerm(new StructureTerm(SYM_MODE_1, args2), opts);
-	opts = new ListTerm(new StructureTerm(SYM_FILE_NAME_1, args3), opts);
+	opts = new ListTerm(new StructureTerm(SYM_TYPE_1, SYM_TEXT), opts);
+	opts = new ListTerm(new StructureTerm(SYM_MODE_1, a2), opts);
+	opts = new ListTerm(new StructureTerm(SYM_FILE_NAME_1, SymbolTerm.makeSymbol(file.getAbsolutePath())), opts);
 	if (alias != null) {
 	    engine.getStreamManager().put(alias, streamObject);
-	    Term[] as = {alias};
-	    opts = new ListTerm(new StructureTerm(SYM_ALIAS_1, as), opts);
+	    opts = new ListTerm(new StructureTerm(SYM_ALIAS_1, alias), opts);
 	}
 	((VariableTerm)a3).bind(streamObject, engine.trail);
 	engine.getStreamManager().put(streamObject, opts);
diff --git a/src/lang/StructureTerm.java b/src/lang/StructureTerm.java
index 354a66b..ef806cf 100644
--- a/src/lang/StructureTerm.java
+++ b/src/lang/StructureTerm.java
@@ -35,7 +35,7 @@
      * such that <code>_functor</code> is the functor symbol, and 
      * <code>_args</code> is the argument terms respectively.
      */
-    public StructureTerm(SymbolTerm _functor, Term[] _args){
+    public StructureTerm(SymbolTerm _functor, Term... _args){
 	functor = _functor;
 	arity = functor.arity();
 	args = _args;