diff --git a/assignments/src/MV3500Cohort2023MarchJune/homework3/Cecil/ArrivalProcess.java b/assignments/src/MV3500Cohort2023MarchJune/homework3/Cecil/ArrivalProcess.java
new file mode 100644
index 0000000000000000000000000000000000000000..97630234a6d15aa545d3701f1eb16eb8bfb1d5f7
--- /dev/null
+++ b/assignments/src/MV3500Cohort2023MarchJune/homework3/Cecil/ArrivalProcess.java
@@ -0,0 +1,85 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package MV3500Cohort2023MarchJune.homework3.Cecil;
+
+import simkit.SimEntityBase;
+import simkit.random.RandomVariate;
+
+/**
+ * Specifies the cumulative number of arrivals with times between arrivals 
+ * (deterministic or random).
+ * @author thomascecil
+ */
+public class ArrivalProcess extends SimEntityBase {
+    
+    private RandomVariate interarrivalTimeGenerator;
+    protected int numberArrivals;
+    
+    /**
+     * Constructor for the arrival process setting the interarrivalTimeGenerator.
+     * @param interarrivalTimeGenerator 
+     */
+    public ArrivalProcess(RandomVariate interarrivalTimeGenerator) {
+        this.setInterarrivalTimeGenerator(interarrivalTimeGenerator);
+    }
+
+    /**
+     * Constructs the arrival process.
+     */
+    public ArrivalProcess() { }
+    
+    /**
+     * Getter for the InterarrivalTimeGenerator.
+     * @return 
+     */
+    public RandomVariate getInterarrivalTimeGenerator() {
+        return interarrivalTimeGenerator;
+    }
+    
+    /**
+     * Setter for the interarrivalTimeGenerator.
+     * @param interarrivalTimeGenerator 
+     */
+    public void setInterarrivalTimeGenerator(RandomVariate interarrivalTimeGenerator) {
+        this.interarrivalTimeGenerator = interarrivalTimeGenerator;
+    }
+    
+    /**
+     * Getter for the number of arrivals.
+     * @return 
+     */
+    public int getNumberArrivals() {
+        return this.numberArrivals;
+    }
+    
+    /**
+     * Sets all state variables to their initial values.
+     */
+    @Override
+    public void reset() {
+        super.reset();
+        numberArrivals = 0;
+    }
+    
+    /**
+     * Fires a property change then schedules the first event, a run event.
+     */
+    public void doRun() {
+        firePropertyChange("numberArrivals", getNumberArrivals());
+        waitDelay("Arrival", interarrivalTimeGenerator);
+    }
+    
+    /**
+     * Saves the old value for numberArrivals and passes it to firePropertyChange
+     * and updates time-varying state variables.
+     */
+    public void doArrival() {
+        int oldNumberArrivals = getNumberArrivals();
+        numberArrivals = numberArrivals + 1;
+        firePropertyChange("numberArrivals", oldNumberArrivals,
+                getNumberArrivals());
+        waitDelay("Arrival", interarrivalTimeGenerator);
+    }
+}
diff --git a/assignments/src/MV3500Cohort2023MarchJune/homework3/Cecil/ExampleSimulationProgram.java b/assignments/src/MV3500Cohort2023MarchJune/homework3/Cecil/ExampleSimulationProgram.java
index 87bda3d015c84f31a04f22823bdeb061cb8756fc..1201f46aa327de23a40ff5a7e8df33ec3133c80d 100644
--- a/assignments/src/MV3500Cohort2023MarchJune/homework3/Cecil/ExampleSimulationProgram.java
+++ b/assignments/src/MV3500Cohort2023MarchJune/homework3/Cecil/ExampleSimulationProgram.java
@@ -16,6 +16,11 @@ import java.time.LocalDateTime;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import simkit.Schedule;
+import simkit.random.RandomVariate;
+import simkit.random.RandomVariateFactory;
+import simkit.util.SimplePropertyDumper;
+
 /** The purpose of this inheritable class is to provide an easily modifiable 
  *  example simulation program that includes DIS-capable entities performing 
  *  tasks of interest, and then reporting activity via PDUs to the network.
@@ -37,13 +42,13 @@ public class ExampleSimulationProgram
     protected PduFactory pduFactory;
     
     /** seconds per loop for real-time or simulation execution */
-    private double  simulationTimeStepDuration  =  1.0; // seconds TODO encapsulate
+    private double  simulationTimeStepDuration  =  0.2; // seconds TODO encapsulate
     /** initial simulation time in seconds */
     double  simulationTimeInitial = 0.0;
     /** current simulation time in seconds */
     double  simulationTimeSeconds = simulationTimeInitial;
     /** Maximum number of simulation loops */
-    int MAX_LOOP_COUNT = 4;
+    int MAX_LOOP_COUNT = 10;
     
     String narrativeMessage1 = new String();
     String narrativeMessage2 = new String();
@@ -215,7 +220,26 @@ public class ExampleSimulationProgram
             // =============================================================================================
             // * your own simulation code starts here! *****************************************************
             // =============================================================================================
-            
+                    RandomVariate interarrivalTimeGenerator = RandomVariateFactory.getInstance(
+        "Exponential", 3.2);
+        ArrivalProcess arrivalProcess = new ArrivalProcess(interarrivalTimeGenerator);
+        
+        // Event listener for changes in numberArrivals
+        SimplePropertyDumper simplePropertyDumper = new SimplePropertyDumper();
+        arrivalProcess.addPropertyChangeListener(simplePropertyDumper);
+        
+        System.out.println(arrivalProcess);
+        
+        Schedule.stopAtTime(15.0);
+        Schedule.setVerbose(true);
+        
+        // Initializes state variables and starts simulation
+        Schedule.reset();
+        Schedule.startSimulation();
+        
+        System.out.println("At time " + Schedule.getSimTime() + 
+                " there have been " + arrivalProcess.getNumberArrivals() + 
+                " arrivals");
             //  are there any other variables to modify at the beginning of your loop?
             
             // are your reading any DIS PDUs from the network?  check for them here