diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/AllPduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/AllPduReceiver.java
new file mode 100644
index 0000000000000000000000000000000000000000..c934694a7290d6ed6939c08eac634b4954339d26
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/AllPduReceiver.java
@@ -0,0 +1,95 @@
+package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
+
+import MV3500Cohort2019JulySeptember.homework4.Brennenstuhl.test.*;
+import java.net.*;
+import java.io.*;
+
+import edu.nps.moves.dis7.*;
+import edu.nps.moves.dis7.enumerations.*;
+import edu.nps.moves.dis7.util.*;
+import java.util.ArrayList;
+
+public class AllPduReceiver
+{
+  public static final int DEFAULT_MULTICAST_PORT = AllPduSender.DEFAULT_MULTICAST_PORT;
+  public static final String DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS;
+  public static final boolean USE_FAST_ESPDU = false;
+
+  public static void main(String args[])
+  {
+    PduFactory factory;
+    MulticastSocket socket;
+    InetAddress address;
+    DatagramPacket packet;
+
+    try {
+      System.out.println("DisExamplesOpenDis7.AllPduReceiver started...");
+      if (args.length == 2) {
+        socket = new MulticastSocket(Integer.parseInt(args[0]));
+        address = InetAddress.getByName(args[1]);
+      }
+      else {
+        System.out.println("Usage:   AllPduReceiver <port> <multicast group>");
+        System.out.println("Default: AllPduReceiver " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
+        socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+        address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+      }
+      socket.joinGroup(address);
+
+      factory = new PduFactory();
+
+      while (true) // Loop infinitely, receiving datagrams
+      {
+        byte buffer[] = new byte[1500]; // typical MTU size
+
+        packet = new DatagramPacket(buffer, buffer.length); // reset
+
+        socket.receive(packet);
+
+        Pdu pdu = factory.createPdu(packet.getData());
+        if (pdu != null)
+        {
+            DISPDUType currentPduType = pdu.getPduType(); //short  currentPduType = pdu.getPduType();
+            String currentPduTypeName = pdu.getClass().getName();
+            DISProtocolFamily currentProtocolFamilyID = pdu.getProtocolFamily(); //short  currentProtocolFamilyID = pdu.getProtocolFamily();
+            String currentPduFamilyName = pdu.getClass().getSuperclass().getSimpleName();
+
+            StringBuilder message = new StringBuilder();
+            message.append("received DIS PDU ");
+            if (currentPduType.getValue() < 10)
+              message.append(" "); // column spacing
+            message.append(currentPduType.getValue());
+            String currentPduTypePadded     = String.format("%-34s", currentPduType); // - indicates right padding of whitespace
+            message.append(" " ).append(currentPduTypePadded);
+            String currentPduTypeNamePadded = String.format("%-49s", currentPduTypeName); // - indicates right padding of whitespace
+            message.append(" of type ").append(currentPduTypeNamePadded); // package.class name
+            message.append(" (protocolFamily ").append(currentProtocolFamilyID);
+  //        message.append(" ").append(currentPduFamilyName); // class name is also available
+            message.append(")");
+            System.out.println(message.toString());
+
+            switch (currentPduType) // using enumeration values from edu.​nps.​moves.​dis7.​enumerations.​DISPDUType
+            {
+                case COMMENT:
+                    CommentPdu commentPdu = (CommentPdu)pdu; // cast to precise type
+                    ArrayList<VariableDatum> payloadList = (ArrayList)commentPdu.getVariableDatums();
+                    for (VariableDatum variableDatum : payloadList)
+                    {
+                        String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
+                        System.out.println("\"" + nextComment + "\"");
+                    }
+            }
+        }
+        else
+          System.out.println("received packet but pdu is null, packet.getData().length=" + packet.getData().length + ", error...");
+      }
+    }
+    catch (IOException e) {
+      System.out.println("Problem with DisExamplesOpenDis7.AllPduReceiver, see exception trace:");
+      System.out.println(e);
+    }
+    finally {
+      System.out.println("DisExamplesOpenDis7.AllPduReceiver complete.");
+    }
+  }
+}
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/AllPduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/AllPduSender.java
new file mode 100755
index 0000000000000000000000000000000000000000..ad0d8ec0791a797e77162434260b9e5d9920cda2
--- /dev/null
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/AllPduSender.java
@@ -0,0 +1,152 @@
+package MV3500Cohort2019JulySeptember.homework2.Brennenstuhl.BRE_KNO_MCC;
+
+import MV3500Cohort2019JulySeptember.homework4.Brennenstuhl.test.*;
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import edu.nps.moves.dis7.*;
+import edu.nps.moves.dis7.enumerations.*;
+
+/**
+ * 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 AllPduSender
+{
+    /** 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 AllPduSender(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()
+	{
+
+        try
+        {
+            System.out.println("Generate PDUs and note issues, if any...");
+            List<Pdu> generatedPdusList = new ArrayList<>();
+
+            // Loop through all the enumerated PDU types, create a PDU for each type,
+            // add that PDU to generatedPdusList, and send each one
+          
+//                System.out.println("PDU " + pdu.getValue() + " " + pdu.name() + " " + pdu.getDescription()); // diagnostic
+
+                Pdu aPdu = null; // edu.​nps.​moves7.​dis.PDU superclass for all PDUs, in preparation for custom assignment
+                
+  
+
+                        
+                   
+                            
+                            //***************************************************************************                           
+                            CommentPdu    newCommentPdu = new CommentPdu();
+                            ArrayList<VariableDatum> payloadList = new ArrayList<VariableDatum>();
+                            
+                            ArrayList<String> commentsList = new ArrayList<>();
+                            commentsList.add("Hello CommentPDU");
+                            commentsList.add("Chuck Norris is comming to town from IP-Adress " + DEFAULT_MULTICAST_ADDRESS + " with Port " + DEFAULT_MULTICAST_PORT);
+                            
+                            if (!commentsList.isEmpty())
+                                System.out.println("Preparing CommentPDU:");
+
+                            for (String comment : commentsList)
+                            {
+                                VariableDatum newVariableDatum = new VariableDatum();
+                                newVariableDatum.setVariableDatumValue (comment.getBytes());        // conversion
+                                //newVariableDatum.setVariableDatumLength(comment.getBytes().length  * 8); // bits, not bytes, see spec and javadoc
+                                // alternatively, you do not need to set this and the marshaller will figure it out from the byte array
+                                // (see javadoc for VariableDatum.setVariableDatumLength())
+                                payloadList.add(newVariableDatum);
+                                System.out.println("   \"" + comment + "\"");
+                            }
+                            newCommentPdu.setVariableDatums(payloadList);
+                            
+                            aPdu = newCommentPdu; // hand off for sending
+                            //*****************************************************************************
+                       
+                            generatedPdusList.add(aPdu);
+
+
+            InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS);
+            MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT);
+            socket.joinGroup(localMulticastAddress);
+
+            for (int idx = 0; idx < generatedPdusList.size(); idx++)
+			{
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                DataOutputStream dos = new DataOutputStream(baos);
+                byte[] buffer;
+
+                aPdu = generatedPdusList.get(idx);
+                try 
+                {
+                    aPdu.marshal(dos);
+
+                    buffer = baos.toByteArray();
+                    DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
+                    socket.send(packet);
+                    try {
+                        Thread.sleep(100L);
+                    } catch (InterruptedException ex) {
+                    }
+                    String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue());
+                    String currentPduTypePadded = String.format("%-34s", aPdu.getPduType()); // - indicates right padding of whitespace
+                    System.out.print  ("Sent DIS PDU " + currentPduTypeValuePadded + " " + currentPduTypePadded );
+                    System.out.println(" of type " + aPdu.getClass().getName());
+                } 
+                catch (Exception ex) {
+                    System.out.println("Marshaling error" + ex);
+                }
+            }
+            // 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)
+        {
+            AllPduSender sender = new AllPduSender(Integer.parseInt(args[0]), args[1]);
+            sender.run();
+        } 
+        else
+        {
+            System.out.println("Usage:   AllPduSender <port> <multicast group>");
+            System.out.println("Default: AllPduSender  " + DEFAULT_MULTICAST_PORT + "   " + DEFAULT_MULTICAST_ADDRESS);
+            AllPduSender sender = new  AllPduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS);
+            sender.run();
+        }
+        System.out.println("DisExamplesOpenDis7.AllPduSender complete.");
+    }
+}