Index: trunk/src/scriptbuilder/structures/SimulationScript.java
===================================================================
--- trunk/src/scriptbuilder/structures/SimulationScript.java	(revision 1)
+++ trunk/src/scriptbuilder/structures/SimulationScript.java	(revision 9)
@@ -26,5 +26,5 @@
  * @version 2017/06/22
  */
-public class SimulationScript extends Observable implements Observer
+public class SimulationScript extends Observable
 {
 
@@ -155,30 +155,36 @@
 
     /**
-     * Pass incident focus events on to observers, if applicable.
-     *
-     * @param o The observable object sending the update
-     * @param arg Argument parameter of update
-     */
-    @Override
-    public void update(Observable o, Object arg)
-    {
-        if (arg instanceof SliceChangedEvent)
-        {
-            // The slice focus has changed; pass the message
-            setChanged();
-            notifyObservers(arg);
-        }
-        else if (arg instanceof IncidentFocusedEvent)
-        {
-            // The slice focus has changed; pass the message
-            setChanged();
-            notifyObservers(arg);
-        }
-        else
-        {
-            // The script has changed, notify observers
-            setChanged();
-            notifyObservers(this);
-        }
+     * Update the script's observers.
+     *
+     */
+    public void update()
+    {
+        // The script has changed, notify observers
+        setChanged();
+        notifyObservers(this);
+    }
+
+    /**
+     * Tell this script's observers that there is a new slice event.
+     *
+     * @param e the slice focus event
+     */
+    public void broadcastEvent(SliceChangedEvent e)
+    {
+        // The slice focus has changed; pass the message
+        setChanged();
+        notifyObservers(e);
+    }
+
+    /**
+     * Tell this script's observers that there is a new slice event.
+     *
+     * @param e the incident focus event
+     */
+    public void broadcastEvent(IncidentFocusedEvent e)
+    {
+        // The slice focus has changed; pass the message
+        setChanged();
+        notifyObservers(e);
     }
 
@@ -210,5 +216,5 @@
             ex.printStackTrace();
         }
-        update(this, this);
+        this.update();
     }
 }
Index: trunk/src/scriptbuilder/structures/TimeSlice.java
===================================================================
--- trunk/src/scriptbuilder/structures/TimeSlice.java	(revision 7)
+++ trunk/src/scriptbuilder/structures/TimeSlice.java	(revision 9)
@@ -185,3 +185,14 @@
 
     }
+
+    /**
+     * Stub method. Converts the contents of this timeslice to a correctly
+     * formatted <ScriptEvent> XML element.
+     *
+     * @return XML conversion of this timeslice.
+     */
+    public String toXML()
+    {
+        return "STUB";
+    }
 }
Index: trunk/src/scriptbuilder/structures/ScriptIncident.java
===================================================================
--- trunk/src/scriptbuilder/structures/ScriptIncident.java	(revision 7)
+++ trunk/src/scriptbuilder/structures/ScriptIncident.java	(revision 9)
@@ -19,5 +19,5 @@
  * @version 2017/06/29
  */
-public class ScriptIncident extends Observable
+public class ScriptIncident
 {
 
@@ -66,4 +66,6 @@
      */
     private int latestStart = 0;
+
+    SimulationScript script;
 
     /**
@@ -82,5 +84,5 @@
         this.name = name;
         this.description = description;
-        this.addObserver(script);
+        this.script = script;
         slices = new TreeMap<Integer, TimeSlice>();
     }
@@ -102,5 +104,5 @@
         this.name = name;
         this.description = description;
-        this.addObserver(script);
+        this.script = script;
         slices = new TreeMap<Integer, TimeSlice>();
     }
@@ -124,5 +126,5 @@
         this.name = name;
         this.description = description;
-        this.addObserver(script);
+        this.script = script;
         slices = new TreeMap<Integer, TimeSlice>();
         this.setOffset(offset);
@@ -137,6 +139,5 @@
     {
         this.collapsed = collapsed;
-        setChanged();
-        notifyObservers();
+        script.update();
     }
 
@@ -150,6 +151,5 @@
     {
         this.offset = offset;
-        setChanged();
-        notifyObservers();
+        script.update();
     }
 
@@ -253,6 +253,5 @@
         if (this.slices.get(i) != null)
         {
-            setChanged();
-            notifyObservers(new SliceChangedEvent(this.slices.get(i)));
+            script.broadcastEvent(new SliceChangedEvent(this.slices.get(i)));
         }
     }
@@ -277,6 +276,5 @@
     public void setIncidentActive()
     {
-        setChanged();
-        notifyObservers(new IncidentFocusedEvent(this));
+        script.broadcastEvent(new IncidentFocusedEvent(this));
     }
 
