diff --git a/demo/F16/F16_waypoint_scene.py b/demo/F16/F16_waypoint_scene.py
index 8984fc182bcfbf622e6bd3a7f989986003fd161a..f4376fa8259b2879d57953ad0233371e050ab425 100644
--- a/demo/F16/F16_waypoint_scene.py
+++ b/demo/F16/F16_waypoint_scene.py
@@ -8,6 +8,7 @@ from typing import Tuple, List
 
 import numpy as np
 from scipy.integrate import ode
+from enum import Enum, auto
 
 from dryvr_plus_plus.scene_verifier.agents.base_agent import BaseAgent
 from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap
@@ -25,6 +26,46 @@ from aerobench.visualize import plot
 
 from waypoint_autopilot import WaypointAutopilot
 
+
+class F16Mode(Enum):
+    '''Defines the discrete modes of a single agent'''
+    Normal = auto()
+    # TODO: The one mode of this automation is called "Normal" and auto assigns it an integer value.
+
+
+class State:
+    '''Defines the state variables of the model
+        Both discrete and continuous variables.
+        Initial values defined here do not matter.
+    '''
+    mode: F16Mode
+    ### Continuous variable initial conditions ###
+    power = 9  # engine power level (0-10)
+
+    # Default alpha & beta
+    alpha = deg2rad(2.1215)  # Trim Angle of Attack (rad)
+    beta = 0  # Side slip angle (rad)
+
+    # Initial Attitude
+    alt = 3800  # altitude (ft)
+    vt = 540  # initial velocity (ft/sec)
+    phi = 0  # Roll angle from wings level (rad)
+    theta = 0  # Pitch angle from nose level (rad)
+    psi = math.pi / 8  # Yaw angle from North (rad)
+
+    P = 0
+    Q = 0
+    R = 0
+    pn = 0
+    pe = 0
+
+    # Build Initial Condition Vectors
+    # state = [vt, alpha, beta, phi, theta, psi, P, Q, R, pn, pe, h, pow]
+    init = [vt, alpha, beta, phi, theta, psi, 0, 0, 0, 0, 0, alt, power]
+    def __init__(self, vt, alpha, beta, phi, theta, psi, P, Q, R, pn, pe, alt, power, mode:F16Mode):
+        pass
+
+
 def main():
     'main function'
 
@@ -61,6 +102,7 @@ def main():
 
     step = 1/30
     extended_states = True
+    '''Main call to simulation'''
     res = run_f16_sim(init, tmax, ap, step=step, extended_states=extended_states, integrator_str='rk45')
 
     print(f"Simulation Completed in {round(res['runtime'], 2)} seconds (extended_states={extended_states})")
diff --git a/demo/F16/aerobench/run_f16_sim.py b/demo/F16/aerobench/run_f16_sim.py
index 027303baa88be7b27303d02bdc1dc9188ac804a9..bfd848e17b93b66271cffbd500a5026051d961d2 100644
--- a/demo/F16/aerobench/run_f16_sim.py
+++ b/demo/F16/aerobench/run_f16_sim.py
@@ -20,7 +20,7 @@ class F16Agent(BaseAgent):
     '''Dynamics of an F16 aircraft
     derived from Stanley Bak's python library'''
     def __init__(self, id, code = None, file_name = None):
-        '''Contructor for tha agent
+        '''Contructor for one F16 agent
             EXACTLY one of the following should be given
             file_name: name of the controller
             code: pyhton string ddefning the controller