diff --git a/.gitignore b/.gitignore
index 0c568fb5d4113f05ed74516c1a15098a63a93efb..abc579f77a7085891854d222dc1da27923dabd50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,17 +1,35 @@
 ## for latex relates files
+
 *.aux
+
 *.bbl
+
 *.blg
+
 *-blx.bib
+
 *.glg
+
 *.glo
+
 *.gls
+
 *.log
+
 *.out
+
 *.run.xml
+
 *.sybctex.gz
+
 *.toc
+
 *.xdy
+
 *.fls
+
 *.fdb_latexmk
+
 doc/**/*.pdf
+
+testenv/
diff --git a/doc/lastenheft/lastenheft.synctex.gz b/doc/lastenheft/lastenheft.synctex.gz
new file mode 100644
index 0000000000000000000000000000000000000000..4aa9669f877f1c642e0ac5ee5540fb3788675242
Binary files /dev/null and b/doc/lastenheft/lastenheft.synctex.gz differ
diff --git a/modules/ACC-module_v0.01_Flowchart.txt b/modules/ACC-module_v0.01_Flowchart.txt
new file mode 100644
index 0000000000000000000000000000000000000000..98ff810433f5313e05a486b6481ebc3f7dd56cb7
--- /dev/null
+++ b/modules/ACC-module_v0.01_Flowchart.txt
@@ -0,0 +1,108 @@
+state(n) = {
+  IPD(n),
+  PS(n),
+  v_z(n),
+  d_z(n),
+  v_c(n),
+  d_c(n),
+  b(n) = { }
+  }
+
+state(n+1) = {
+  IPD(n+1),
+  PS(n+1),
+  v_z(n+1),
+  d_z(n+1),
+  v_c(n+1),
+  d_c(n+1),
+  b(n+1) = { }
+  }
+
+ustate(n+1) = {
+  u(IPD(n+1)),
+  u(PS(n+1)),
+  v_z(n+1),
+  d_z(n+1),
+  u(v_c(n+1)),
+  u(d_c(n+1)),
+  b(n+1) = { }
+  }
+
+while(true):
+  # 1. update
+  update()
+  # 2. (neue) Ziele für das eigene Auto definieren)
+  define()
+  # 3. (neue) Ziele umsetzen
+  set()
+end
+
+update():
+  #updates von Sensor holen und nach ustate(n+1) schreiben
+end
+
+define():
+  # aktueller Abstand zum Vorgänger entspricht der IPD (aka der Kolonenabstand wir mit Toleranz gehalten)
+  if u(IPD(n+1) -t <= u(d_c(n+1)) <= u(IPD(n+1)) +t:
+    # Das Zielfahrzeug ist da, wo es erwartet wurde, und das eigene FZ hält die IPD
+    if d_c(n+1) -t <= u(d_c(n+1)) <= d_c(n+1) +t:
+      # Von der Distanz her perfekt
+      # d_z(n+2) - mit IPS vergleichen und pot. halten
+      # v_z(n+2) - mit PS vergleichen und pot. halten
+
+    # Das Zielfahrzeug ist dichter als es erwartet wurde und das eigene FZ hält die richtige IPD
+    elif d_c(n+1) -t > u(d_c(n+1)):
+      #
+
+    # Das Zielfahrzeug ist weiter entfernt als es erwartet wurde und das eigene FZ hält die richtige IPD
+    else:
+      #
+    
+
+  # aktueller Abstand zum Vorgänger unterschreitet die IPD
+  elif u(IPD(n+1)) -t > u(d_c(n+1)):
+    # Das Zielfahrzeug ist da, wo es erwartet wurde, und das eigene FZ unterschreitet die IPD
+    if d_c(n+1) -t <= u(d_c(n+1)) <= d_c(n+1) +t
+      # IPD wurde geändert oder Fall wird bereits behandelt
+      # d_z(n+2) - mit IPD vergleichen
+      # v_z(n+2) - mit PS vergleichen
+
+    # Das Zielfahrzueg ist dichter als es erwartet wurde und das eigene FZ unterscheitet die IPD
+    elif d_c(n+1) -t > u(d_c(n+1)):
+      # Zu dicht am Vorgänger der zu dem noch langsamer wird
+      # d_z(n+2) - mit IPD vergleich und pot. vergrössern
+      # v_z(n+2) - mit v_z(n+1), v_c(n) vergleichen und pot. senken
+
+    # Das Zielfharzeug ist weiter entfernt als erwartet wurde und das eigene FZ unterschreitet die IPD
+    else:
+      # Das ZF beschleunigt und vergössert den Abstand
+      # d_z(n+2) erhöhen und zusammen mit aktueller Änderung anpassen
+      # v_z(n+2) halten (pot. mit v_c(n) und v_z(n+1) anpassen)
+
+
+  # aktueller Abstand zum Vorgänger überschreitet die IPD
+  else:
+    # Das Zielfahrzeug ist da, wo es erwartet wurde, und das eigene FZ überschreitet die IPD
+    if d_c(n+1) -t <= u(d_c(n+1)) <= d_c(n+1) +t:
+      # IPD wurde geändert oder der Fall wird bereits behandelt
+      # d_z(n+2) - mit IPD vergleichen
+      # v_z(n+2) - mit PS vergleichen
+
+    # Das Zielfahrzeug ist dichter als erwartet wurde und das eigene FZ überschreitet die IPD
+    elif d_c(n+1) -t > u(d_c(n+1)):
+      # Das ZFZ ist langsamer geworden
+      # d_z(n+2) - ist zu gross, wenn das FZ ausserhalb des IPDs fährt (Vgl. mit d_c(n), da die Entfernung kleiner geworden ist
+      # v_z(n+2) - mit PS vergleichen, aber erstmal beibehalten
+
+    # Das Zielfahrzeug ist weiter entfernt als erwartet wurde und das eigene FZ überschreitet die IPD
+    else:
+      # Das ZFZ ist schneller geworden
+      # d_z(n+2) - ist zu gross, wenn FZ ausserhalb des IPDs fährt
+      # v_z(n+2) - zu klein
+  end
+end
+
+set():
+  # Aus Ziel-Geschwindigkeit, Ziel-Entfernung, aktuelle Geschwindigkeit und aktueller Entfernung eine Beschleunigung finden
+end
+