diff --git a/.gitignore b/.gitignore
index 5bba7af96e75af65b1cc95fc52a50ab820d9986e..e0ecce94ebcc235743ed2bf3c674ad3210e66733 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@ __pycache__/
 .idea/
 venv/
 .DS_Store
-**.egg-info/
\ No newline at end of file
+**.egg-info/
+.VSCodeCounter/
\ No newline at end of file
diff --git a/demo.py b/demo/demo.py
similarity index 100%
rename from demo.py
rename to demo/demo.py
diff --git a/demo2.py b/demo/demo2.py
similarity index 73%
rename from demo2.py
rename to demo/demo2.py
index b7ab259fce1c735afb630119e2bd3b16844e3a35..7589ea8be07d4a457560045de87d78722c1eb534 100644
--- a/demo2.py
+++ b/demo/demo2.py
@@ -34,11 +34,11 @@ if __name__ == "__main__":
     input_code_name = 'example_controller2.py'
     scenario = Scenario()
 
-    car = NPCAgent('car1', file_name=input_code_name)
+    car = NPCAgent('car1')
     scenario.add_agent(car)
     car = CarAgent('car2', file_name=input_code_name)
     scenario.add_agent(car)
-    tmp_map = SimpleMap3()
+    tmp_map = SimpleMap6()
     scenario.set_map(tmp_map)
     scenario.set_sensor(FakeSensor2())
     scenario.set_init(
@@ -51,17 +51,17 @@ if __name__ == "__main__":
             (VehicleMode.Normal, LaneMode.Lane1),
         ]
     )
-    # res_list = scenario.simulate_multi(10,10)
-    traces = scenario.verify(10)
+    res_list = scenario.simulate_multi(10,10)
+    # traces = scenario.verify(10)
 
     fig = plt.figure(2)
     # fig = plot_map(tmp_map, 'g', fig)
-    fig = plot_reachtube_tree(traces, 'car1', 0, [1], 'b', fig, (1000,-1000), (1000,-1000))
-    fig = plot_reachtube_tree(traces, 'car2', 0, [1], 'r', fig)
-    # for traces in res_list:
-    #     fig = plot_simulation_tree(traces, 'car1', 0, [1], 'b', fig, (1000,-1000), (1000,-1000))
-    #     fig = plot_simulation_tree(traces, 'car2', 0, [1], 'r', fig)
-    #     # generate_simulation_anime(traces, tmp_map)
+    # fig = plot_reachtube_tree(traces, 'car1', 0, [1], 'b', fig, (1000,-1000), (1000,-1000))
+    # fig = plot_reachtube_tree(traces, 'car2', 0, [1], 'r', fig)
+    for traces in res_list:
+        fig = plot_simulation_tree(traces, 'car1', 0, [1], 'b', fig, (1000,-1000), (1000,-1000))
+        fig = plot_simulation_tree(traces, 'car2', 0, [1], 'r', fig)
+        # generate_simulation_anime(traces, tmp_map)
 
 
 
diff --git a/example_controller1.py b/demo/example_controller1.py
similarity index 93%
rename from example_controller1.py
rename to demo/example_controller1.py
index 68795384d70835ccba364bc49326d181fa79a871..4f66b62b223b4ca36753c1ad5d3f1c137f8f564d 100644
--- a/example_controller1.py
+++ b/demo/example_controller1.py
@@ -1,6 +1,5 @@
 from enum import Enum, auto
 import copy
-from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap
 
 class LaneObjectMode(Enum):
     Vehicle = auto()
@@ -29,9 +28,9 @@ class State:
     lane_mode: LaneMode = LaneMode.Lane0
 
     def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode):
-        self.data = []
+        pass
 
-def controller(ego:State, other:State, lane_map:LaneMap):
+def controller(ego:State, other:State, lane_map):
     output = copy.deepcopy(ego)
     if ego.vehicle_mode == VehicleMode.Normal:
         if lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) > 3 \
diff --git a/example_controller2.py b/demo/example_controller2.py
similarity index 91%
rename from example_controller2.py
rename to demo/example_controller2.py
index 315ce64f4938bfc30a950bfd6a9f19029b599ae5..bc3c11401fe4fbd7c648d09614ef97a091014f9a 100644
--- a/example_controller2.py
+++ b/demo/example_controller2.py
@@ -1,6 +1,5 @@
 from enum import Enum, auto
 import copy
-from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap
 
 class VehicleMode(Enum):
     Normal = auto()
@@ -24,7 +23,7 @@ class State:
     def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode):
         self.data = []
 
-def controller(ego:State, other:State, lane_map:LaneMap):
+def controller(ego:State, other:State, lane_map):
     output = copy.deepcopy(ego)
     if ego.vehicle_mode == VehicleMode.Normal:
         if lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) > 0 \
diff --git a/example_controller3.py b/demo/example_controller3.py
similarity index 96%
rename from example_controller3.py
rename to demo/example_controller3.py
index 0df5565b4b620baf8172e82cc1f6724eaa31141d..1f606e0c0463ed5e60950d9b481d5036f761f27f 100644
--- a/example_controller3.py
+++ b/demo/example_controller3.py
@@ -27,9 +27,9 @@ class State:
     v = 0.0
     vehicle_mode: VehicleMode = VehicleMode.Normal
     lane_mode: LaneMode = LaneMode.Lane0
-    obj_mode: LaneObjectMode
+    type: LaneObjectMode
 
-    def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode):
+    def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode, type: LaneObjectMode):
         self.data = []
 
 def controller(ego:State, other:State, sign:State, lane_map:LaneMap):
diff --git a/example_two_car_sign_lane_switch.py b/demo/example_two_car_sign_lane_switch.py
similarity index 86%
rename from example_two_car_sign_lane_switch.py
rename to demo/example_two_car_sign_lane_switch.py
index 236fc2fd35d8aa5c7cfa55e5dc024f805a777d42..fcfaf9235f447795527bbcc46b3923130295e149 100644
--- a/example_two_car_sign_lane_switch.py
+++ b/demo/example_two_car_sign_lane_switch.py
@@ -27,7 +27,7 @@ class State:
     v: float
     vehicle_mode: VehicleMode
     lane_mode: LaneMode
-    obj_mode: LaneObjectMode
+    type: LaneObjectMode
 
     def __init__(self, x: float = 0, y: float = 0, theta: float = 0, v: float = 0, vehicle_mode: VehicleMode = VehicleMode.Normal, lane_mode: LaneMode = LaneMode.Lane0, type: LaneObjectMode = LaneObjectMode.Vehicle):
         pass
@@ -91,12 +91,12 @@ if __name__ == "__main__":
     scenario.set_sensor(FakeSensor2())
     scenario.set_init(
         [
-            [[10, 0, 0, 0.5],[10, 0, 0, 0.5]], 
             [[0, -0.2, 0, 1.0],[0.2, 0.2, 0, 1.0]],
+            [[10, 0, 0, 0.5],[10, 0, 0, 0.5]], 
             [[20, 0, 0, 0],[20, 0, 0, 0]],
         ],
         [
-            (VehicleMode.Normal, LaneMode.Lane2, LaneObjectMode.Vehicle),
+            (VehicleMode.Normal, LaneMode.Lane1, LaneObjectMode.Vehicle),
             (VehicleMode.Normal, LaneMode.Lane1, LaneObjectMode.Vehicle),
             (VehicleMode.Normal, LaneMode.Lane1, LaneObjectMode.Obstacle),
         ]
@@ -111,23 +111,3 @@ if __name__ == "__main__":
 
     plt.show()
 
-    # plt.plot([0, 40], [3, 3], 'g')
-    # plt.plot([0, 40], [0, 0], 'g')
-    # plt.plot([0, 40], [-3, -3], 'g')
-
-    # queue = [traces]
-    # while queue != []:
-    #     node = queue.pop(0)
-    #     traces = node.trace
-    #     # for agent_id in traces:
-    #     agent_id = 'car2'
-    #     trace = np.array(traces[agent_id])
-    #     plt.plot(trace[:, 1], trace[:, 2], 'r')
-
-    #     agent_id = 'car1'
-    #     trace = np.array(traces[agent_id])
-    #     plt.plot(trace[:, 1], trace[:, 2], 'b')
-
-    #     # if node.child != []:
-    #     queue += node.child
-    # plt.show()
diff --git a/dryvr_plus_plus/example/example_agent/car_agent.py b/dryvr_plus_plus/example/example_agent/car_agent.py
index 61f32fb092b5ca6aeba3208053abf3825f9742ea..9d1212f514f13bff40bc9f6a7263602ab4f249b3 100644
--- a/dryvr_plus_plus/example/example_agent/car_agent.py
+++ b/dryvr_plus_plus/example/example_agent/car_agent.py
@@ -8,7 +8,7 @@ from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap
 from dryvr_plus_plus.scene_verifier.code_parser.pythonparser import EmptyAst
 
 class NPCAgent(BaseAgent):
-    def __init__(self, id, code = None, file_name = None):
+    def __init__(self, id):
         self.id = id
         self.controller = EmptyAst()
 
diff --git a/setup.py b/setup.py
index 25e99f51d402f9a5352c5203612e0aba391f0a52..221cc485528f4077f02df2db7be6e725639d0bdb 100644
--- a/setup.py
+++ b/setup.py
@@ -5,12 +5,12 @@ setup(
     name='dryvr_plus_plus',
     version='0.1',
     description='DryVR++',
-    author='MaybeShewill-CV',
-    maintainer='Chiao Hsieh',
-    maintainer_email='chsieh16@illinois.edu',
+    author='Yangge Li, Katherine Braught, Haoqing Zhu',
+    maintainer='Yangge Li, Katherine Braught, Haoqing Zhu',
+    maintainer_email='{li213, braught2, haoqing3}@illinois.edu',
     license='Apache-2.0',
-    packages=["dryvr_plus_plus"],
-    python_requires='>=3.6',
+    packages=setuptools.find_packages(exclude=["tests", "demo"]),
+    python_requires='>=3.8',
     install_requires=[
         "numpy~=1.22.1",
         "scipy~=1.8.0",