Index: trunk/src/org/expeditee/actions/Javascript2.java
===================================================================
--- trunk/src/org/expeditee/actions/Javascript2.java	(revision 1079)
+++ trunk/src/org/expeditee/actions/Javascript2.java	(revision 1080)
@@ -52,5 +52,4 @@
     protected void init() {
 	ERROR_FRAMESET = "JavascriptErrors";
-	scriptEngineManager = new ScriptEngineManager();
 	scriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
 	scriptEngine.put("invocable", (Invocable) scriptEngine);
Index: trunk/src/org/expeditee/actions/Python.java
===================================================================
--- trunk/src/org/expeditee/actions/Python.java	(revision 1079)
+++ trunk/src/org/expeditee/actions/Python.java	(revision 1080)
@@ -53,5 +53,4 @@
     protected void init() {
 	ERROR_FRAMESET = "PythonErrors";
-	scriptEngineManager = new ScriptEngineManager();
 	scriptEngine = scriptEngineManager.getEngineByMimeType("application/python");
 	scriptEngine.put("invocable", (Invocable) scriptEngine);
Index: trunk/src/org/expeditee/actions/ScriptBase.java
===================================================================
--- trunk/src/org/expeditee/actions/ScriptBase.java	(revision 1079)
+++ trunk/src/org/expeditee/actions/ScriptBase.java	(revision 1080)
@@ -51,8 +51,12 @@
 public abstract class ScriptBase {
 	
-    public String ERROR_FRAMESET;	
-    public ScriptEngineManager scriptEngineManager;
-    public ScriptEngine scriptEngine = null;
-	
+    protected static ScriptEngineManager scriptEngineManager;
+    protected String ERROR_FRAMESET;	
+    protected ScriptEngine scriptEngine = null;
+
+    static {
+	scriptEngineManager = new ScriptEngineManager();
+    }
+    
     protected abstract void init();
     
@@ -117,7 +121,5 @@
 
     protected ScriptBase(Frame frame, boolean followLinks) {
-	if (scriptEngine == null) {
-	    init();
-	}
+	init();
 	this.parseFrame(frame, followLinks);
     }
Index: trunk/src/org/expeditee/items/JSItem.java
===================================================================
--- trunk/src/org/expeditee/items/JSItem.java	(revision 1079)
+++ trunk/src/org/expeditee/items/JSItem.java	(revision 1080)
@@ -26,12 +26,15 @@
 import javax.script.Invocable;
 import javax.script.ScriptEngine;
-
-import org.expeditee.actions.Javascript2;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+
 import org.expeditee.gui.DisplayIO;
 import org.expeditee.items.widgets.InteractiveWidget;
 
 public class JSItem extends XRayable implements JSThreadable {
-	
-	private static final Object global = Javascript2.eval("new Object()");
+
+        private static ScriptEngineManager scriptEngineManager = null;
+        private static ScriptEngine globalScriptEngine = null;
+	private static Object global = null;
 	
 	// a method to run that will set up and return the root JComponent for this Widget
@@ -49,5 +52,15 @@
 	
 	private int _width, _height;
-	
+
+        static {
+	    try {
+		scriptEngineManager = new ScriptEngineManager();
+		globalScriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
+		global = globalScriptEngine.eval("new Object()");
+	    } catch (ScriptException e) {
+		e.printStackTrace();
+	    }
+	}
+    
 	private static Text getSauce(int width, int height) {
 		Text source = new Text(DisplayIO.getCurrentFrame().getNextItemID(), "@js: " + width + " " + height);
@@ -62,5 +75,5 @@
 		this.load = load;
 		this.paint = paint;
-		this.scriptEngine = Javascript2.scriptEngineManager.getEngineByMimeType("application/javascript");
+		this.scriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
 		this.invocable = (Invocable) this.scriptEngine;
 		this.scriptEngine.put("global", global);
Index: trunk/src/org/expeditee/items/widgets/JSWidget.java
===================================================================
--- trunk/src/org/expeditee/items/widgets/JSWidget.java	(revision 1079)
+++ trunk/src/org/expeditee/items/widgets/JSWidget.java	(revision 1080)
@@ -27,7 +27,9 @@
 import javax.script.Invocable;
 import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+
 import javax.swing.JPanel;
 
-import org.expeditee.actions.Javascript2;
 import org.expeditee.gui.DisplayIO;
 import org.expeditee.items.ItemParentStateChangedEvent;
@@ -43,4 +45,6 @@
 public class JSWidget extends DataFrameWidget implements JSThreadable {
 	
+        private static ScriptEngineManager scriptEngineManager = null;
+        private static ScriptEngine globalScriptEngine = null;
         private static Object global = null;
 	
@@ -59,5 +63,15 @@
 	// container for our component
 	private final JPanel container;
-	
+
+        static {
+	    try {
+		scriptEngineManager = new ScriptEngineManager();
+		globalScriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
+		global = globalScriptEngine.eval("new Object()");
+	    } catch (ScriptException e) {
+		e.printStackTrace();
+	    }
+	}
+    
 	private static Text getSauce() {
 		Text source = new Text(DisplayIO.getCurrentFrame().getNextItemID(), "@iw: org.expeditee.items.widgets.JSWidget");
@@ -68,12 +82,10 @@
 	private JSWidget(Text source, int width, int height, String init, String save, String load) throws Exception {
 		super(source, new JPanel(new BorderLayout()), -1, width, -1, -1, height, -1);
-		if (global == null) {
-		    global = Javascript2.eval("new Object()");
-		}
+
 		this.init = init;
 		this.save = save;
 		this.load = load;
 		this.container = (JPanel) super._swingComponent;
-		this.scriptEngine = Javascript2.scriptEngineManager.getEngineByMimeType("application/javascript");
+		this.scriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
 		this.invocable = (Invocable) this.scriptEngine;
 		this.scriptEngine.put("global", global);
