diff --git a/examples/src/SimkitOpenDis7Examples/ArrivalProcessOpenDis7.java b/examples/src/SimkitOpenDis7Examples/ArrivalProcessOpenDis7.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ee840b9218acdc3899a84bc1e71655290eda769
--- /dev/null
+++ b/examples/src/SimkitOpenDis7Examples/ArrivalProcessOpenDis7.java
@@ -0,0 +1,98 @@
+package SimkitOpenDis7Examples;
+
+import OpenDis7Examples.OpenDis7NetworkCapabilities;
+import simkit.SimEntityBase;
+import simkit.random.RandomVariate;
+
+/**
+ * One of the simplest non-trivial Event Graph models. A series of Arrival
+ * events is scheduled based on an inter arrival time random variate. The state
+ * variable, simply counts the number of these arrivals.
+ *
+ * @author ahbuss
+ */
+public class ArrivalProcessOpenDis7 extends SimEntityBase {
+    
+    private final OpenDis7NetworkCapabilities opendis7 = new OpenDis7NetworkCapabilities();
+
+    /**
+     * Generates interarrival times
+     */
+    private RandomVariate interarrivalTimeGenerator;
+
+    /**
+     * State variable that counts the number of Arrival events
+     */
+    protected int numberArrivals;
+
+    /**
+     * Instantiate an ArrivalProcess with the given interarrivalTimeGenerator
+     *
+     * @param interarrivalTimeGenerator Given RandomVariate for interarrival
+     * times
+     */
+    public ArrivalProcessOpenDis7(RandomVariate interarrivalTimeGenerator) {
+        this.setInterarrivalTimeGenerator(interarrivalTimeGenerator);
+    }
+
+    /**
+     * If the ArrivalProcess is instantiated using the zero-argument
+     * constructor, be sure the set the interarrivalTimeGenerator with an
+     * explicit call to its setter method.
+     */
+    public ArrivalProcessOpenDis7() {
+        System.out.println("opendis7.getNetworkAddress()=" + opendis7.getNetworkAddress());
+    }
+
+    /**
+     * Initialize numberArrivals to 0
+     */
+    public void reset() {
+        super.reset();
+        numberArrivals = 0;
+    }
+
+    /**
+     * Schedule the first Arrival event with delay generated by
+     * interarrivalTimeGenerator
+     */
+    public void doRun() {
+        firePropertyChange("numberArrivals", getNumberArrivals());
+
+        waitDelay("Arrival", interarrivalTimeGenerator);
+    }
+
+    /**
+     * Increment numberArrivals<br>
+     * Schedule next Arrival event with delay generated by
+     * interarrivalTimeGenerator
+     */
+    public void doArrival() {
+        int oldNumberArrivals = getNumberArrivals();
+        numberArrivals += 1;
+        firePropertyChange("numberArrivals", oldNumberArrivals, getNumberArrivals());
+
+        waitDelay("Arrival", interarrivalTimeGenerator);
+    }
+
+    /**
+     * @return the interarrivalTimeGenerator
+     */
+    public RandomVariate getInterarrivalTimeGenerator() {
+        return interarrivalTimeGenerator;
+    }
+
+    /**
+     * @param interarrivalTimeGenerator the interarrivalTimeGenerator to set
+     */
+    public void setInterarrivalTimeGenerator(RandomVariate interarrivalTimeGenerator) {
+        this.interarrivalTimeGenerator = interarrivalTimeGenerator;
+    }
+
+    /**
+     * @return the numberArrivals
+     */
+    public int getNumberArrivals() {
+        return numberArrivals;
+    }
+}
diff --git a/examples/src/SimkitOpenDis7Examples/run/RunSimpleServerOpenDis7.java b/examples/src/SimkitOpenDis7Examples/run/RunSimpleServerOpenDis7.java
new file mode 100644
index 0000000000000000000000000000000000000000..8fc2766a3a2c908cd4bd19b09b9b5a6ce1768c21
--- /dev/null
+++ b/examples/src/SimkitOpenDis7Examples/run/RunSimpleServerOpenDis7.java
@@ -0,0 +1,79 @@
+package SimkitOpenDis7Examples.run;
+
+import SimkitOpenDis7Examples.ArrivalProcessOpenDis7;
+import SimkitOpenDis7Examples.SimpleServer;
+import simkit.Schedule;
+import simkit.random.RandomVariate;
+import simkit.random.RandomVariateFactory;
+import simkit.stat.SimpleStatsTimeVarying;
+import simkit.util.SimplePropertyDumper;
+
+/**
+ * <h2>Output:</h2><pre>
+ * ArrivalProcess.1
+ * &nbsp;&nbsp;&nbsp;&nbsp;interarrivalTimeGenerator = Uniform (0.900, 2.200)
+ * SimpleServer.2
+ * &nbsp;&nbsp;&nbsp;&nbsp;serviceTimeGenerator = Gamma (1.700, 1.800)
+ * &nbsp;&nbsp;&nbsp;&nbsp;totalNumberServers = 2
+ * Simulation ended at time 100,000.000
+ *
+ * There have been 64,475 arrivals
+ * There have been 64,472 customers served
+ * Average number in queue	15.9655
+ * Average utilization	0.9819</pre>
+ *
+ * @author ahbuss
+ */
+public class RunSimpleServerOpenDis7 {
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[]) {
+        String rvName = "Uniform";
+        double lower = 0.9;
+        double upper = 2.2;
+        RandomVariate interarrivalTimeGenerator = RandomVariateFactory.getInstance(rvName, lower, upper);
+        ArrivalProcessOpenDis7 arrival = new ArrivalProcessOpenDis7(interarrivalTimeGenerator);
+
+        rvName = "Gamma";
+        double alpha = 1.7;
+        double beta = 1.8;
+
+        RandomVariate serviceTimeGenerator = RandomVariateFactory.getInstance(rvName, alpha, beta);
+        int numServ = 2;
+        SimpleServer server = new SimpleServer(numServ, serviceTimeGenerator);
+        arrival.addSimEventListener(server);
+
+        SimplePropertyDumper simplePropertyDumper = new SimplePropertyDumper();
+//        server.addPropertyChangeListener(simplePropertyDumper);
+//        arrival.addPropertyChangeListener(simplePropertyDumper);
+
+        SimpleStatsTimeVarying numberInQueueStat = new SimpleStatsTimeVarying("numberInQueue");
+        SimpleStatsTimeVarying numberAvailableServersStat = new SimpleStatsTimeVarying("numberAvailableServers");
+
+        server.addPropertyChangeListener(numberInQueueStat);
+        server.addPropertyChangeListener(numberAvailableServersStat);
+
+        System.out.println(arrival);
+        System.out.println(server);
+
+//        Schedule.setVerbose(true);
+//        Schedule.setSingleStep(false);
+//        double stopTime = 6.0;
+        double stopTime = 100000.0;
+
+        Schedule.stopAtTime(stopTime);
+
+        Schedule.reset();
+        numberInQueueStat.reset();
+        numberAvailableServersStat.reset();
+        Schedule.startSimulation();
+
+        System.out.printf("Simulation ended at time %,.3f%n", Schedule.getSimTime());
+        System.out.printf("%nThere have been %,d arrivals%n", arrival.getNumberArrivals());
+        System.out.printf("There have been %,d customers served%n", server.getNumberServed());
+        System.out.printf("Average number in queue\t%.4f%n", numberInQueueStat.getMean());
+        System.out.printf("Average utilization\t%.4f%n", 1.0 - numberAvailableServersStat.getMean() / server.getTotalNumberServers());
+    }
+}
diff --git a/examples/src/SimkitOpenDis7Examples/run/RunSimpleServerOpenDis7Log.txt b/examples/src/SimkitOpenDis7Examples/run/RunSimpleServerOpenDis7Log.txt
new file mode 100644
index 0000000000000000000000000000000000000000..404cf5a07033b52b24f2fab7a8a6b85dad215727
--- /dev/null
+++ b/examples/src/SimkitOpenDis7Examples/run/RunSimpleServerOpenDis7Log.txt
@@ -0,0 +1,21 @@
+ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=debug.single -Djavac.includes=SimkitOpenDis7Examples/run/RunSimpleServerOpenDis7.java -Ddebug.class=SimkitOpenDis7Examples.run.RunSimpleServerOpenDis7 debug-single
+init:
+Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
+Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
+compile-single:
+[OpenDis7]thisHostName=IT160907-UWALPP
+ArrivalProcessOpenDis7.1
+	interarrivalTimeGenerator = Uniform (0.900, 2.200)
+SimpleServer.2
+	totalNumberServers = 2
+	serviceTimeGenerator = Gamma (1.700, 1.800)
+Simulation ended at time 100,000.000
+
+There have been 64,475 arrivals
+There have been 64,472 customers served
+Average number in queue	15.9655
+Average utilization	0.9819
+debug-single:
+BUILD SUCCESSFUL (total time: 1 minute 9 seconds)