diff --git a/.gitignore b/.gitignore
index a8613d64644ee74981a6bae644609ba452aeddb5..57a63c7106fcaa80b3675fcbe16342cfc2635209 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,4 @@
 /projects/UdpExample1/UdpReceiver/nbproject/private/
 /projects/UdpExample1/UdpSender/build/
 /projects/UdpExample1/UdpSender/nbproject/private/
+/CourseExamples/dist/
\ No newline at end of file
diff --git a/deliverables/src/MV3500Cohort2018JulySeptember/FinalProject/FriscoFurrProject/FriscoFurrPduSender.java b/deliverables/src/MV3500Cohort2018JulySeptember/FinalProject/FriscoFurrProject/FriscoFurrPduSender.java
new file mode 100644
index 0000000000000000000000000000000000000000..e7804b68a078db1bfd8b3d36a71ad41de3d88547
--- /dev/null
+++ b/deliverables/src/MV3500Cohort2018JulySeptember/FinalProject/FriscoFurrProject/FriscoFurrPduSender.java
@@ -0,0 +1,188 @@
+package MV3500Cohort2018JulySeptember.FinalProject.FriscoFurrProject;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis.*;
+import edu.nps.moves.disenum.*;
+import edu.nps.moves.examples.ClassNameComparator;
+
+/**
+ * This is an example that sends many/most types of PDUs. Useful for testing standards
+ * compliance or getting a full set of PDUs. It also writes the generated PDUs to an XML file.
+ * Adapted from OpenDIS library example package edu.nps.moves.examples
+ *
+ * @author DMcG
+ * @version $Id:$
+ */
+public class FriscoFurrPduSender
+{
+    /** Default multicast group address we send on. */
+    public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3";
+	
+    /** Default multicast port used, matches Wireshark DIS capture default */
+    public static final int    DEFAULT_MULTICAST_PORT    = 3000;
+	
+    private int port;
+    InetAddress multicastAddress;
+
+    public FriscoFurrPduSender(int port, String multicast) {
+        try
+		{
+            this.port = port;
+            multicastAddress = InetAddress.getByName(multicast);
+            if (!multicastAddress.isMulticastAddress())
+			{
+                System.out.println("Not a multicast address: " + multicast);
+            }
+        } 
+		catch (UnknownHostException e) {
+            System.out.println("Unable to open socket: " + e);
+        }
+    }
+
+    public void run()
+	{
+		System.out.println("DisExamples.PduSender started...");
+        try {
+            List<Pdu> generatedPdus = new ArrayList<>();
+
+            // Loop through all the enumerated PDU types, create a PDU for each type,
+            // and add that PDU to a list.
+            for (PduType pdu : PduType.values()) {
+                Pdu aPdu = null;
+
+                switch (pdu) // using enumeration values from edu.nps.moves.disenum.*
+				{
+                    case ENTITY_STATE:
+                        aPdu = new EntityStatePdu();
+						EntityStatePdu espdu = (EntityStatePdu) aPdu;
+						Marking marking = new Marking();
+						marking.setCharactersString("PduSender");
+						espdu.setMarking(marking);
+						Vector3Double espduLocation = new Vector3Double();
+						espduLocation.setX(1.0);
+						espduLocation.setY(2.0);
+						espduLocation.setZ(3.0);
+                        break;
+                        
+                    case COMMENT:
+                        aPdu = new CommentPdu();
+                        break;
+
+                    case FIRE:
+                        aPdu = new FirePdu();
+                        break;
+
+                    case DETONATION:
+                        aPdu = new DetonationPdu();
+                        break;
+
+                    case COLLISION:
+                        aPdu = new CollisionPdu();
+                        break;
+
+                    case SERVICE_REQUEST:
+                        aPdu = new ServiceRequestPdu();
+                        break;
+
+                    case RESUPPLY_OFFER:
+                        aPdu = new ResupplyOfferPdu();
+                        break;
+
+                    case RESUPPLY_RECEIVED:
+                        aPdu = new ResupplyReceivedPdu();
+                        break;
+
+                    case RESUPPLY_CANCEL:
+                        aPdu = new ResupplyCancelPdu();
+                        break;
+
+                    case REPAIR_COMPLETE:
+                        aPdu = new RepairCompletePdu();
+                        break;
+
+                    case REPAIR_RESPONSE:
+                        aPdu = new RepairResponsePdu();
+                        break;
+
+                    case CREATE_ENTITY:
+                        aPdu = new CreateEntityPdu();
+                        break;
+
+                    case REMOVE_ENTITY:
+                        aPdu = new RemoveEntityPdu();
+                        break;
+
+                    case START_RESUME:
+                        aPdu = new StartResumePdu();
+                        break;
+
+                    case STOP_FREEZE:
+                        aPdu = new StopFreezePdu();
+                        break;
+
+                    case ACKNOWLEDGE:
+                        aPdu = new AcknowledgePdu();
+                        break;
+
+                    case ACTION_REQUEST:
+                        aPdu = new ActionRequestPdu();
+                        break;
+
+                    default:
+                        System.out.print("PDU of type " + pdu + " not supported, created or sent ");
+                        System.out.println();
+                }
+                if (aPdu != null)
+				{
+                    generatedPdus.add(aPdu);
+                }
+            }
+
+            // Sort the created PDUs by class name
+            Collections.sort(generatedPdus, new ClassNameComparator());
+
+            // Send the PDUs we created
+            InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+            MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+            socket.joinGroup(localMulticastAddress);
+
+            for (int idx = 0; idx < generatedPdus.size(); idx++)
+			{
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                DataOutputStream dos = new DataOutputStream(baos);
+                byte[] buffer;
+
+                Pdu aPdu = generatedPdus.get(idx);
+                aPdu.marshal(dos);
+
+                buffer = baos.toByteArray();
+                DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+                socket.send(packet);
+                System.out.println("Sent PDU of type " + aPdu.getClass().getName());
+            }
+            // write the PDUs out to an XML file.
+            //PduContainer container = new PduContainer();
+            //container.setPdus(generatedPdus);
+            //container.marshallToXml("examplePdus.xml");
+        } catch (IOException e)
+		{
+            System.out.println(e);
+        }
+    }
+
+    public static void main(String args[])
+	{
+        if (args.length == 2) {
+            FriscoFurrPduSender sender = new FriscoFurrPduSender(Integer.parseInt(args[0]), args[1]);
+            sender.run();
+        } else {
+            System.out.println("Usage:   PduSender <port> <multicast group>");
+            System.out.println("Default: PduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
+            FriscoFurrPduSender sender = new  FriscoFurrPduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
+            sender.run();
+        }
+    }
+}
diff --git a/originals/projects/MulticastExample/MulticastReceiver/build/built-jar.properties b/originals/projects/MulticastExample/MulticastReceiver/build/built-jar.properties
new file mode 100644
index 0000000000000000000000000000000000000000..bdc69cb3a59532da5bc9cc8462ce8bfbc2d55f45
--- /dev/null
+++ b/originals/projects/MulticastExample/MulticastReceiver/build/built-jar.properties
@@ -0,0 +1,4 @@
+#Wed, 22 Aug 2018 09:40:08 -0700
+
+
+E\:\\Documents\\NPS\\MV3500_Internetwork_Communications\\NetworkedGraphicsMV3500\\projects\\MulticastExample\\MulticastReceiver=
diff --git a/originals/projects/MulticastExample/MulticastReceiver/build/classes/multicastreceiver/MulticastReceiver.class b/originals/projects/MulticastExample/MulticastReceiver/build/classes/multicastreceiver/MulticastReceiver.class
new file mode 100644
index 0000000000000000000000000000000000000000..1a1b9022da0a69e3ae81819894cd57a81b18b10e
Binary files /dev/null and b/originals/projects/MulticastExample/MulticastReceiver/build/classes/multicastreceiver/MulticastReceiver.class differ
diff --git a/originals/projects/MulticastExample/MulticastReceiver/nbproject/private/private.xml b/originals/projects/MulticastExample/MulticastReceiver/nbproject/private/private.xml
new file mode 100644
index 0000000000000000000000000000000000000000..db03bb0777e82a916d6c25cf4285fa939f1834bb
--- /dev/null
+++ b/originals/projects/MulticastExample/MulticastReceiver/nbproject/private/private.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
+</project-private>
diff --git a/originals/projects/TcpExample3/Client/TcpClient/build/built-jar.properties b/originals/projects/TcpExample3/Client/TcpClient/build/built-jar.properties
new file mode 100644
index 0000000000000000000000000000000000000000..205ba76f140d793b8454def0230de76bdacc2837
--- /dev/null
+++ b/originals/projects/TcpExample3/Client/TcpClient/build/built-jar.properties
@@ -0,0 +1,4 @@
+#Mon, 20 Aug 2018 09:06:48 -0700
+
+
+E\:\\Documents\\NPS\\MV3500_Internetwork_Communications\\NetworkedGraphicsMV3500\\projects\\TcpExample3\\Client\\TcpClient=
diff --git a/originals/projects/TcpExample3/Client/TcpClient/build/classes/tcpclient/TcpClient.class b/originals/projects/TcpExample3/Client/TcpClient/build/classes/tcpclient/TcpClient.class
new file mode 100644
index 0000000000000000000000000000000000000000..26a80cf0fb4f36ec25725e12c70ebc771a26a7fc
Binary files /dev/null and b/originals/projects/TcpExample3/Client/TcpClient/build/classes/tcpclient/TcpClient.class differ
diff --git a/originals/projects/TcpExample3/Server/TcpServer/build/built-jar.properties b/originals/projects/TcpExample3/Server/TcpServer/build/built-jar.properties
new file mode 100644
index 0000000000000000000000000000000000000000..85e5f34dd88628be4bb21b07ebe84fba32284040
--- /dev/null
+++ b/originals/projects/TcpExample3/Server/TcpServer/build/built-jar.properties
@@ -0,0 +1,4 @@
+#Mon, 20 Aug 2018 09:06:34 -0700
+
+
+E\:\\Documents\\NPS\\MV3500_Internetwork_Communications\\NetworkedGraphicsMV3500\\projects\\TcpExample3\\Server\\TcpServer=
diff --git a/originals/projects/TcpExample3/Server/TcpServer/build/classes/tcpserver/TcpServer.class b/originals/projects/TcpExample3/Server/TcpServer/build/classes/tcpserver/TcpServer.class
new file mode 100644
index 0000000000000000000000000000000000000000..6e0aad6c538e6e59c6ffb97330b8df6046e4ce17
Binary files /dev/null and b/originals/projects/TcpExample3/Server/TcpServer/build/classes/tcpserver/TcpServer.class differ