Index: /trunk/test/atmsdriver/model/HighwaysTest.java
===================================================================
--- /trunk/test/atmsdriver/model/HighwaysTest.java	(revision 291)
+++ /trunk/test/atmsdriver/model/HighwaysTest.java	(revision 340)
@@ -1,5 +1,5 @@
 package atmsdriver.model;
 
-import atmsdriver.ATMSDriver;
+import archive.ATMSDriver;
 import java.io.File;
 import java.io.FileWriter;
Index: /trunk/exchange.xml
===================================================================
--- /trunk/exchange.xml	(revision 250)
+++ /trunk/exchange.xml	(revision 340)
@@ -1,9 +1,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<CAD_DATA>
-    <Basic>
-        <Comm_Interval>30</Comm_Interval>
-        <Network_ID>1</Network_ID>
-        <Simulation>FALSE</Simulation>
-        <Incident>FALSE</Incident>
-    </Basic>
-</CAD_DATA>
Index: /trunk/paramics_status.xml
===================================================================
--- /trunk/paramics_status.xml	(revision 79)
+++ /trunk/paramics_status.xml	(revision 340)
@@ -0,0 +1,4 @@
+<Paramics>
+   <Network_Status>LOADING</Network_Status>
+   <Network_ID>1</Network_ID>
+</Paramics>
Index: /trunk/webapps/cptms.html
===================================================================
--- /trunk/webapps/cptms.html	(revision 339)
+++ /trunk/webapps/cptms.html	(revision 340)
@@ -213,12 +213,12 @@
     <script  src="js/controls.js"></script>
     <script  src="js/night_mode.js"></script>
-    <!-- Using John's API Key -->
+    <!-- Using John's API Key
     <script async defer
     src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD6iTyN0DjP-9OVkAgicyp4tkC10naE_B8&libraries=places&callback=initMap">
-    </script>
-    <!-- Project API Key
+    </script> -->
+    <!-- Project API Key -->
     <script async defer
     src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCJuoPR3s6_qekC-GA1v5rvTcVocL3AXHE&libraries=places&callback=initMap"></script>
- -->
+
 <!--
 export GOOGLE_APPLICATION_CREDENTIALS="/home/<path to file>/TMC Simulator-c3ae15ddb96b.json"
Index: /trunk/webapps/highway_status.json
===================================================================
--- /trunk/webapps/highway_status.json	(revision 335)
+++ /trunk/webapps/highway_status.json	(revision 340)
@@ -2358,5 +2358,5 @@
        },
    "properties": 
-       {"street": "MACARTHU1", "color": "yellow", "perpx": "-0.710326", "perpy": "0.703873"}
+       {"street": "MACARTHU1", "color": "red", "perpx": "-0.710326", "perpy": "0.703873"}
 },  
 {
@@ -2369,5 +2369,5 @@
        },
    "properties": 
-       {"street": "MACARTHU1", "color": "yellow", "perpx": "0.740557", "perpy": "-0.671994"}
+       {"street": "MACARTHU1", "color": "red", "perpx": "0.740557", "perpy": "-0.671994"}
 },  
 {
@@ -2391,5 +2391,5 @@
        },
    "properties": 
-       {"street": "MACARTHU2", "color": "lime", "perpx": "0", "perpy": "0"}
+       {"street": "MACARTHU2", "color": "yellow", "perpx": "0", "perpy": "0"}
 },  
 {
Index: /trunk/src/tmcsim/application.properties
===================================================================
--- /trunk/src/tmcsim/application.properties	(revision 338)
+++ /trunk/src/tmcsim/application.properties	(revision 340)
@@ -1,5 +1,5 @@
-#Wed, 20 Mar 2019 14:40:29 -0700
+#Sat, 23 Mar 2019 09:47:19 -0700
 
-Application.revision=337
+Application.revision=339
 
 Application.buildnumber=108
Index: /trunk/src/atmsdriver/GoogleMapAnimator.java
===================================================================
--- /trunk/src/atmsdriver/GoogleMapAnimator.java	(revision 248)
+++ /trunk/src/atmsdriver/GoogleMapAnimator.java	(revision 340)
@@ -27,4 +27,5 @@
  * in verifying the correctness of their data file.
  * @author jdalbey
+ * @version 3/20/2019 Incomplete, low priority.
  */
 public class GoogleMapAnimator extends javax.swing.JPanel
Index: unk/src/atmsdriver/ExchangeReader.java
===================================================================
--- /trunk/src/atmsdriver/ExchangeReader.java	(revision 79)
+++ 	(revision )
@@ -1,280 +1,0 @@
-package atmsdriver;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParserFactory;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- *
- * @author John A Torres
- */
-public class ExchangeReader {
-	/** Error Log **/
-	private static Logger ATMSDriverLogger = Logger.getLogger("atmsdriver");
-	
-	/** A SAX Handler that is used to parse received Incident Status Node. **/
-	private IncidentStatusHandler ish = null;
-	
-	/** The current networkId **/
-	private int networkId = 1;
-	
-	/** The Paramics Simulation Info for the most recent incident read **/
-	private ExchangeInfo exInfo = null;
-	
-	/** Value (seconds since 1/1/1970) of input file's last modification time. */
-	private long lastModified = 0;
-	
-	/**
-	 * Constructor.
-	 */
-	public ExchangeReader() 
-	{		
-		ish = new IncidentStatusHandler();
-	}
-	
-	/**
-	 * This method parses the received XML node with the local CameraStatusHandler.
-	 * All updated camera information is sent to the ParamicsSimulationManager.
-	 * 
-	 * If a successful read of the file occurs, the file is written with an empty string
-	 * and the date of the last modification is stored.
-	 *
-	 * @param filename The file to check for message in.
-	 * @return A ParamicsSimulationInfo object containing the file's information
-	 * 		   A null pointer on:
-	 * 		     - The file does not exist
-	 * 		     - No new modification
-	 * 		     - An error opening file 		  
-	 *           - An empty file
-	 *           - An error parsing the file
-	 *           
-	 *         The caller is able to call this function to check if there are any new messages
-	 *         in the file.  If there are, a PSI object is returned.  If there aren't any new
-	 *         messages, a null pointer is returned.
-	 */
-	public ExchangeInfo parse(String filename) 
-	{	
-		ExchangeInfo exInfo = null;
-		
-		File f = new File(filename);
-		BufferedReader r = null;
-		
-		// File does not exist: No information
-		if (!(f.exists()))
-		{
-			return null;
-		}
-		
-		// File not modified: No new information
-		if (f.lastModified() <= lastModified)
-		{
-			return null;
-		}
-		
-		try 
-		{
-			// Try to open the file
-			r = new BufferedReader(new FileReader(f));
-			
-			// Read the file to the end
-			StringBuilder xml = new StringBuilder("");
-			String line = r.readLine();
-			while (line != null)
-			{
-				xml.append(line + "\n");
-				line = r.readLine();
-			}
-			
-			// If the file has contents in it, read them and returned a PSI describing the contents
-			if(xml.length() > 0) 
-			{
-				// Parse the file
-				SAXParserFactory.newInstance().newSAXParser().parse(new InputSource(new StringReader(xml.toString())), ish);
-                                exInfo = new ExchangeInfo(networkId, xml.toString());
-			}
-			else if (xml.length() == 0)
-			{
-				lastModified = modifyFile(f);
-				r.close();
-			}
-		}
-		catch (FileNotFoundException fnfe)
-		{
-			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
-					filename + " dissapeared before reading.", fnfe);
-			exInfo = null;
-		}
-		catch (IOException ioe)
-		{
-			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
-					"Error while reading file " + filename + ".", ioe);
-			exInfo = null;
-		}
-		catch (SAXException saxe)
-		{
-			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
-					"Error while parsing file " + filename + ".", saxe);
-			exInfo = null;
-		}
-		catch (ParserConfigurationException pce)
-		{
-			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
-					"Error while configuring parser.", pce);
-		}
-		
-		// If a incident was read
-		if (exInfo != null)
-		{
-			lastModified = modifyFile(f);
-			try
-			{
-				r.close();
-			}
-			catch (IOException e)
-			{
-				ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
-						"Error while closing file" + filename + ".", e);
-			}			
-		}
-		
-		// Return no object if there was an error while reading, or the psi created from
-		// parsing the file if the operation was successful.
-		return exInfo;
-	}
-	
-	private long modifyFile(File f)
-	{
-		FileWriter w = null;
-		
-		// Write to the file to show that it was read.
-		try
-		{
-			w = new FileWriter(f);
-			w.write("");
-			w.close();
-		}
-		catch (IOException e)
-		{
-			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
-					"Error while writing to file " + f.getName() + " to show that file was read.", e);
-		}
-		
-		// Save the last modified time
-		return f.lastModified();
-	}
-
-    /**
-     * Internal SAX Handler used to parse the Incident Status Document read by
-     * the remote Status Reader.  The schema for this document is: <br/>
-     *
-	 * <CAD_DATA><br>
-	 *    <Basic><br>
-	 *       <Comm_Interval/><br/>
-	 *       <Network_ID/><br/>
-	 *       <Simulation/><br/>
-	 *       <Incident/><br/>
-	 *    </Basic>
-	 *
-	 *    <Simulation_Data>
-	 *       <Simulation_speed/><br/>
-	 *       <CAD_clock><br/>
-	 *          <hour/><br/>
-	 *          <minute/><br/>
-	 *          <second/><br/>
-	 *          <Location><br/>
-	 *       </CAD_clock><br/>
-	 *    </Simulation_Data>
-	 *    
-	 *    <CAD_Incidents>
-	 *       <Incident><br/>
-	 *          <Identifier/><br/>
-	 *          <Status/><br/>
-	 *          <Location><br/>
-	 *              <Route/><br/>
-	 *              <Direction/><br/>
-	 *              <Location_type/><br/>
-	 *              <Postmile/><br/>
-	 *          </Location><br/>
-	 *          <Incident_type/><br/>
-	 *          <Lanes><br/>
-	 *             <Lane_number/><br/>
-	 *             ...
-	 *          </Lanes><br/>
-	 *       </Incident><br/>
-	 *       ...
-	 *    </CAD_Incidents>   
-	 *    
-	 *    <Management>
-	 *       <Diversion>
-     *          <Diversion_path>
-     *             <Identifier/>
-     *             <Percentage/>
-     *          <Diversion_path>
-     *          ...
-     *       </Diversion>
-     *       ...
-	 *    </Management>
-	 *  
-	 * </CAD_DATA>
-     */	
-	protected class IncidentStatusHandler extends DefaultHandler 
-	{
-		private final String NETWORK_ID   = "Network_ID";
-		
-		/** A buffer for reading characters **/
-		private StringBuffer parsedValue  = new StringBuffer();
-
-		public void startDocument() 
-		{ 
-		}	
-		
-		/** Appends characters to the xmlMessage and parsedValue buffers **/
-		public void characters(char[] ch, int start, int length) 
-		{
-			parsedValue.append(new String(ch, start, length).trim());
-		}
-		
-	    public void startElement (String uri, String localName, String qName, Attributes attributes)
-			throws SAXException
-		{
-	    }
-		
-		public void endElement(String uri, String localName, String qName)  
-		{
-			if(qName.equals(NETWORK_ID)) { networkId = Integer.parseInt(parsedValue.toString()); }
-			
-			parsedValue.setLength(0);
-		}	
-		
-		public void error(SAXParseException e) 
-		{
-			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "error", 
-					"Error in parsing received incident status.", e);
-		}
-		
-		public void fatalError(SAXParseException e) 
-		{
-			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "fatalError", 
-					"Fatal error in parsing received incident status.", e);
-		}
-		
-		public void warning(SAXParseException e) 
-		{
-			ATMSDriverLogger.logp(Level.WARNING, "ParamicsIncidentReader", "warning", 
-					"Warning in parsing received incident status.", e);
-		}		
-	}
-}
Index: unk/src/atmsdriver/ExchangeInfo.java
===================================================================
--- /trunk/src/atmsdriver/ExchangeInfo.java	(revision 79)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package atmsdriver;
-
-/**
- *
- * @author John A Torres
- */
-public class ExchangeInfo {
-	/** The network ID **/
-	public int networkId;
-
-	/** The XML message **/
-	public String xmlMessage;
-	
-	/** Constructor **/
-	public ExchangeInfo(int networkId, String xmlMessage)
-	{
-		this.networkId = networkId;
-		this.xmlMessage = xmlMessage;
-	}
-}
Index: unk/src/atmsdriver/ATMSDriver.java
===================================================================
--- /trunk/src/atmsdriver/ATMSDriver.java	(revision 248)
+++ 	(revision )
@@ -1,172 +1,0 @@
-package atmsdriver;
-
-import atmsdriver.model.Highways;
-import java.io.FileInputStream;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import tmcsim.common.SimulationException;
-
-/** "Super Old"
- * ATMS Driver reads the current simulation traffic conditions from the
- * EXCHANGE.XML file and constructs the Highway Network status info in the
- * format required by the FEP. It then sends this XML data over a socket to the
- * FEP Simulator.
- *
- * @author John A. Torres
- * @version 09/10/2017
- */
-public class ATMSDriver implements Runnable
-{
-
-    /**
-     * ATMSDriver Error logger.
-     */
-    private static Logger ATMSDriverLogger = Logger.getLogger("atmsdriver");
-
-    /**
-     * Properties object for the CADClient class.
-     */
-    private Properties ATMSDriverProperties;
-
-    /**
-     * Enumeration containing properties name values. See ATMSDriver class
-     * description for more information.
-     *
-     * @author John Torres
-     * @see ATMSDriver
-     */
-    private static enum PROPERTIES
-    {
-        HIGHWAYS_MAP_FILE_NAME("HighwaysMapFileName"),
-        EXCHANGE_FILE_NAME("ExchangeFileName"),
-        FEP_WRITER_HOST("FEPWriterHost"),
-        FEP_WRITER_PORT("FEPWriterPort");
-
-        public String name;
-
-        private PROPERTIES(String n)
-        {
-            name = n;
-        }
-    }
-
-    /**
-     * Highways in traffic network
-     */
-    final private Highways highways;
-
-    /**
-     * Sleep Time (30 seconds). *
-     */
-    private static final int SLEEP_TIME = 30000;
-
-    /**
-     * Exchange Reader
-     */
-    private ExchangeReader exchangeReader;
-
-    @Override
-    public void run()
-    {
-        // Check for packets and update the simulator
-        while (true)
-        {
-            // Flush the input file
-            ExchangeInfo exInfo = exchangeReader.parse(ATMSDriverProperties
-                    .getProperty(PROPERTIES.EXCHANGE_FILE_NAME.name));
-
-            try
-            {
-                highways.writeToFEP();
-            } catch (SimulationException ex)
-            {
-                System.out.println("Skipping writeToFEP...");
-            }
-            // Update if exchangeInfo is recieved
-            if (exInfo != null)
-            {
-                // TODO: handle this condition
-                Logger.getLogger("ATMSDriver").log(Level.INFO, "exInfo is not null");
-            }
-
-            // Wait for FEP Sim to process the data we just sent
-            try
-            {
-                Thread.sleep(SLEEP_TIME);
-            } catch (InterruptedException ie)
-            {
-                ie.printStackTrace();
-            }
-        }
-    }
-
-    public ATMSDriver(String propertiesFile)
-    {
-        // verify properties file
-        if (!verifyProperties(propertiesFile))
-        {
-            System.exit(0);
-        }
-        // create the highways model
-        highways = new Highways(
-                ATMSDriverProperties.getProperty(
-                        PROPERTIES.HIGHWAYS_MAP_FILE_NAME.name),
-                ATMSDriverProperties.getProperty(PROPERTIES.FEP_WRITER_HOST.name),
-                Integer.parseInt(ATMSDriverProperties.getProperty(
-                                PROPERTIES.FEP_WRITER_PORT.name)));
-        // create the exchange reader
-        exchangeReader = new ExchangeReader();
-    }
-
-    /**
-     * Verifies that the properties file has all necessary properties.
-     *
-     * @param propertiesFile
-     * @return
-     */
-    private boolean verifyProperties(String propertiesFile)
-    {
-        // Load the properties file.
-        try
-        {
-            ATMSDriverProperties = new Properties();
-            ATMSDriverProperties.load(new FileInputStream(propertiesFile));
-        } catch (Exception e)
-        {
-            ATMSDriverLogger.logp(Level.SEVERE, "ATMSDriver",
-                    "Constructor", "Exception in reading properties file.", e);
-        }
-
-        return true;
-    }
-
-    /**
-     * Runs the ATMS Driver.
-     */
-    public static void main(String[] args)
-    {
-        try
-        {
-            if (System.getProperty("ATMSDRIVER_PROPERTIES") != null)
-            {
-                // Create and run the ATMSDriver thread
-                ATMSDriver atmsDriver = new ATMSDriver(System.getProperty("ATMSDRIVER_PROPERTIES"));
-                Thread ATMSDriverThread = new Thread(atmsDriver);
-                ATMSDriverThread.start();
-
-                // run the console driver, pass it the atmsDriver highways model
-                ConsoleTrafficDriver driver = new ConsoleTrafficDriver(atmsDriver.highways);
-
-            } else
-            {
-                throw new Exception("ATMSDRIVER_PROPERTIES system property not defined.");
-            }
-        } catch (Exception e)
-        {
-            ATMSDriverLogger.logp(Level.SEVERE, "ATMSDriver", "Main",
-                    "Error occured initializing application", e);
-            System.exit(-1);
-        }
-    }
-}
Index: /trunk/src/archive/ExchangeReader.java
===================================================================
--- /trunk/src/archive/ExchangeReader.java	(revision 340)
+++ /trunk/src/archive/ExchangeReader.java	(revision 340)
@@ -0,0 +1,280 @@
+package archive;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ *
+ * @author John A Torres
+ */
+public class ExchangeReader {
+	/** Error Log **/
+	private static Logger ATMSDriverLogger = Logger.getLogger("atmsdriver");
+	
+	/** A SAX Handler that is used to parse received Incident Status Node. **/
+	private IncidentStatusHandler ish = null;
+	
+	/** The current networkId **/
+	private int networkId = 1;
+	
+	/** The Paramics Simulation Info for the most recent incident read **/
+	private ExchangeInfo exInfo = null;
+	
+	/** Value (seconds since 1/1/1970) of input file's last modification time. */
+	private long lastModified = 0;
+	
+	/**
+	 * Constructor.
+	 */
+	public ExchangeReader() 
+	{		
+		ish = new IncidentStatusHandler();
+	}
+	
+	/**
+	 * This method parses the received XML node with the local CameraStatusHandler.
+	 * All updated camera information is sent to the ParamicsSimulationManager.
+	 * 
+	 * If a successful read of the file occurs, the file is written with an empty string
+	 * and the date of the last modification is stored.
+	 *
+	 * @param filename The file to check for message in.
+	 * @return A ParamicsSimulationInfo object containing the file's information
+	 * 		   A null pointer on:
+	 * 		     - The file does not exist
+	 * 		     - No new modification
+	 * 		     - An error opening file 		  
+	 *           - An empty file
+	 *           - An error parsing the file
+	 *           
+	 *         The caller is able to call this function to check if there are any new messages
+	 *         in the file.  If there are, a PSI object is returned.  If there aren't any new
+	 *         messages, a null pointer is returned.
+	 */
+	public ExchangeInfo parse(String filename) 
+	{	
+		ExchangeInfo exInfo = null;
+		
+		File f = new File(filename);
+		BufferedReader r = null;
+		
+		// File does not exist: No information
+		if (!(f.exists()))
+		{
+			return null;
+		}
+		
+		// File not modified: No new information
+		if (f.lastModified() <= lastModified)
+		{
+			return null;
+		}
+		
+		try 
+		{
+			// Try to open the file
+			r = new BufferedReader(new FileReader(f));
+			
+			// Read the file to the end
+			StringBuilder xml = new StringBuilder("");
+			String line = r.readLine();
+			while (line != null)
+			{
+				xml.append(line + "\n");
+				line = r.readLine();
+			}
+			
+			// If the file has contents in it, read them and returned a PSI describing the contents
+			if(xml.length() > 0) 
+			{
+				// Parse the file
+				SAXParserFactory.newInstance().newSAXParser().parse(new InputSource(new StringReader(xml.toString())), ish);
+                                exInfo = new ExchangeInfo(networkId, xml.toString());
+			}
+			else if (xml.length() == 0)
+			{
+				lastModified = modifyFile(f);
+				r.close();
+			}
+		}
+		catch (FileNotFoundException fnfe)
+		{
+			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
+					filename + " dissapeared before reading.", fnfe);
+			exInfo = null;
+		}
+		catch (IOException ioe)
+		{
+			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
+					"Error while reading file " + filename + ".", ioe);
+			exInfo = null;
+		}
+		catch (SAXException saxe)
+		{
+			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
+					"Error while parsing file " + filename + ".", saxe);
+			exInfo = null;
+		}
+		catch (ParserConfigurationException pce)
+		{
+			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
+					"Error while configuring parser.", pce);
+		}
+		
+		// If a incident was read
+		if (exInfo != null)
+		{
+			lastModified = modifyFile(f);
+			try
+			{
+				r.close();
+			}
+			catch (IOException e)
+			{
+				ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
+						"Error while closing file" + filename + ".", e);
+			}			
+		}
+		
+		// Return no object if there was an error while reading, or the psi created from
+		// parsing the file if the operation was successful.
+		return exInfo;
+	}
+	
+	private long modifyFile(File f)
+	{
+		FileWriter w = null;
+		
+		// Write to the file to show that it was read.
+		try
+		{
+			w = new FileWriter(f);
+			w.write("");
+			w.close();
+		}
+		catch (IOException e)
+		{
+			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "parse", 
+					"Error while writing to file " + f.getName() + " to show that file was read.", e);
+		}
+		
+		// Save the last modified time
+		return f.lastModified();
+	}
+
+    /**
+     * Internal SAX Handler used to parse the Incident Status Document read by
+     * the remote Status Reader.  The schema for this document is: <br/>
+     *
+	 * <CAD_DATA><br>
+	 *    <Basic><br>
+	 *       <Comm_Interval/><br/>
+	 *       <Network_ID/><br/>
+	 *       <Simulation/><br/>
+	 *       <Incident/><br/>
+	 *    </Basic>
+	 *
+	 *    <Simulation_Data>
+	 *       <Simulation_speed/><br/>
+	 *       <CAD_clock><br/>
+	 *          <hour/><br/>
+	 *          <minute/><br/>
+	 *          <second/><br/>
+	 *          <Location><br/>
+	 *       </CAD_clock><br/>
+	 *    </Simulation_Data>
+	 *    
+	 *    <CAD_Incidents>
+	 *       <Incident><br/>
+	 *          <Identifier/><br/>
+	 *          <Status/><br/>
+	 *          <Location><br/>
+	 *              <Route/><br/>
+	 *              <Direction/><br/>
+	 *              <Location_type/><br/>
+	 *              <Postmile/><br/>
+	 *          </Location><br/>
+	 *          <Incident_type/><br/>
+	 *          <Lanes><br/>
+	 *             <Lane_number/><br/>
+	 *             ...
+	 *          </Lanes><br/>
+	 *       </Incident><br/>
+	 *       ...
+	 *    </CAD_Incidents>   
+	 *    
+	 *    <Management>
+	 *       <Diversion>
+     *          <Diversion_path>
+     *             <Identifier/>
+     *             <Percentage/>
+     *          <Diversion_path>
+     *          ...
+     *       </Diversion>
+     *       ...
+	 *    </Management>
+	 *  
+	 * </CAD_DATA>
+     */	
+	protected class IncidentStatusHandler extends DefaultHandler 
+	{
+		private final String NETWORK_ID   = "Network_ID";
+		
+		/** A buffer for reading characters **/
+		private StringBuffer parsedValue  = new StringBuffer();
+
+		public void startDocument() 
+		{ 
+		}	
+		
+		/** Appends characters to the xmlMessage and parsedValue buffers **/
+		public void characters(char[] ch, int start, int length) 
+		{
+			parsedValue.append(new String(ch, start, length).trim());
+		}
+		
+	    public void startElement (String uri, String localName, String qName, Attributes attributes)
+			throws SAXException
+		{
+	    }
+		
+		public void endElement(String uri, String localName, String qName)  
+		{
+			if(qName.equals(NETWORK_ID)) { networkId = Integer.parseInt(parsedValue.toString()); }
+			
+			parsedValue.setLength(0);
+		}	
+		
+		public void error(SAXParseException e) 
+		{
+			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "error", 
+					"Error in parsing received incident status.", e);
+		}
+		
+		public void fatalError(SAXParseException e) 
+		{
+			ATMSDriverLogger.logp(Level.SEVERE, "ParamicsIncidentReader", "fatalError", 
+					"Fatal error in parsing received incident status.", e);
+		}
+		
+		public void warning(SAXParseException e) 
+		{
+			ATMSDriverLogger.logp(Level.WARNING, "ParamicsIncidentReader", "warning", 
+					"Warning in parsing received incident status.", e);
+		}		
+	}
+}
Index: /trunk/src/archive/ExchangeInfo.java
===================================================================
--- /trunk/src/archive/ExchangeInfo.java	(revision 340)
+++ /trunk/src/archive/ExchangeInfo.java	(revision 340)
@@ -0,0 +1,20 @@
+package archive;
+
+/**
+ *
+ * @author John A Torres
+ */
+public class ExchangeInfo {
+	/** The network ID **/
+	public int networkId;
+
+	/** The XML message **/
+	public String xmlMessage;
+	
+	/** Constructor **/
+	public ExchangeInfo(int networkId, String xmlMessage)
+	{
+		this.networkId = networkId;
+		this.xmlMessage = xmlMessage;
+	}
+}
Index: /trunk/src/archive/ATMSDriver.java
===================================================================
--- /trunk/src/archive/ATMSDriver.java	(revision 340)
+++ /trunk/src/archive/ATMSDriver.java	(revision 340)
@@ -0,0 +1,173 @@
+package archive;
+
+import atmsdriver.ConsoleTrafficDriver;
+import atmsdriver.model.Highways;
+import java.io.FileInputStream;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import tmcsim.common.SimulationException;
+
+/** "Super Old"
+ * ATMS Driver reads the current simulation traffic conditions from the
+ * EXCHANGE.XML file and constructs the Highway Network status info in the
+ * format required by the FEP. It then sends this XML data over a socket to the
+ * FEP Simulator.
+ *
+ * @author John A. Torres
+ * @version 09/10/2017
+ */
+public class ATMSDriver implements Runnable
+{
+
+    /**
+     * ATMSDriver Error logger.
+     */
+    private static Logger ATMSDriverLogger = Logger.getLogger("atmsdriver");
+
+    /**
+     * Properties object for the CADClient class.
+     */
+    private Properties ATMSDriverProperties;
+
+    /**
+     * Enumeration containing properties name values. See ATMSDriver class
+     * description for more information.
+     *
+     * @author John Torres
+     * @see ATMSDriver
+     */
+    private static enum PROPERTIES
+    {
+        HIGHWAYS_MAP_FILE_NAME("HighwaysMapFileName"),
+        EXCHANGE_FILE_NAME("ExchangeFileName"),
+        FEP_WRITER_HOST("FEPWriterHost"),
+        FEP_WRITER_PORT("FEPWriterPort");
+
+        public String name;
+
+        private PROPERTIES(String n)
+        {
+            name = n;
+        }
+    }
+
+    /**
+     * Highways in traffic network
+     */
+    final private Highways highways;
+
+    /**
+     * Sleep Time (30 seconds). *
+     */
+    private static final int SLEEP_TIME = 30000;
+
+    /**
+     * Exchange Reader
+     */
+    private ExchangeReader exchangeReader;
+
+    @Override
+    public void run()
+    {
+        // Check for packets and update the simulator
+        while (true)
+        {
+            // Flush the input file
+            ExchangeInfo exInfo = exchangeReader.parse(ATMSDriverProperties
+                    .getProperty(PROPERTIES.EXCHANGE_FILE_NAME.name));
+
+            try
+            {
+                highways.writeToFEP();
+            } catch (SimulationException ex)
+            {
+                System.out.println("Skipping writeToFEP...");
+            }
+            // Update if exchangeInfo is recieved
+            if (exInfo != null)
+            {
+                // TODO: handle this condition
+                Logger.getLogger("ATMSDriver").log(Level.INFO, "exInfo is not null");
+            }
+
+            // Wait for FEP Sim to process the data we just sent
+            try
+            {
+                Thread.sleep(SLEEP_TIME);
+            } catch (InterruptedException ie)
+            {
+                ie.printStackTrace();
+            }
+        }
+    }
+
+    public ATMSDriver(String propertiesFile)
+    {
+        // verify properties file
+        if (!verifyProperties(propertiesFile))
+        {
+            System.exit(0);
+        }
+        // create the highways model
+        highways = new Highways(
+                ATMSDriverProperties.getProperty(
+                        PROPERTIES.HIGHWAYS_MAP_FILE_NAME.name),
+                ATMSDriverProperties.getProperty(PROPERTIES.FEP_WRITER_HOST.name),
+                Integer.parseInt(ATMSDriverProperties.getProperty(
+                                PROPERTIES.FEP_WRITER_PORT.name)));
+        // create the exchange reader
+        exchangeReader = new ExchangeReader();
+    }
+
+    /**
+     * Verifies that the properties file has all necessary properties.
+     *
+     * @param propertiesFile
+     * @return
+     */
+    private boolean verifyProperties(String propertiesFile)
+    {
+        // Load the properties file.
+        try
+        {
+            ATMSDriverProperties = new Properties();
+            ATMSDriverProperties.load(new FileInputStream(propertiesFile));
+        } catch (Exception e)
+        {
+            ATMSDriverLogger.logp(Level.SEVERE, "ATMSDriver",
+                    "Constructor", "Exception in reading properties file.", e);
+        }
+
+        return true;
+    }
+
+    /**
+     * Runs the ATMS Driver.
+     */
+    public static void main(String[] args)
+    {
+        try
+        {
+            if (System.getProperty("ATMSDRIVER_PROPERTIES") != null)
+            {
+                // Create and run the ATMSDriver thread
+                ATMSDriver atmsDriver = new ATMSDriver(System.getProperty("ATMSDRIVER_PROPERTIES"));
+                Thread ATMSDriverThread = new Thread(atmsDriver);
+                ATMSDriverThread.start();
+
+                // run the console driver, pass it the atmsDriver highways model
+                ConsoleTrafficDriver driver = new ConsoleTrafficDriver(atmsDriver.highways);
+
+            } else
+            {
+                throw new Exception("ATMSDRIVER_PROPERTIES system property not defined.");
+            }
+        } catch (Exception e)
+        {
+            ATMSDriverLogger.logp(Level.SEVERE, "ATMSDriver", "Main",
+                    "Error occured initializing application", e);
+            System.exit(-1);
+        }
+    }
+}
