diff --git a/CHANGES.md b/CHANGES.md
index 44e7d3427cb2b3e07330ed72a9abf338a73a0dac..86f927333543b2dfff5089077c0eacde5ec64342 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -2,17 +2,22 @@
 ### VECTO x.x (current source)
 
 
+
+### VECTO 2.0.4-beta1
+* Updated CSV format of some declaration config files
+* Various bugfixes in AT model
+* rdyn validation
+* Fixed bug in map interpolation
+
 ### VECTO 2.0.4-beta
 * AT update for 1C2C gearboxes
 * Warning when opening or running files if file was created in different mode (Declaration/Engineering Mode)
 
-
 ### VECTO 2.0.3-beta0
 * Implemented engine-side TC inertia input parameter in GBX file
 * Updated User Manual for TC inertia
 * Relabeled "OK" buttons to "Save" in input file editors
 
-
 ### VECTO 2.0.2-beta2
 * AT/TC Update
 * Various smaller fixes
diff --git a/Declaration/PT1.csv b/Declaration/PT1.csv
index b666b9ad8c769df203f6085881906bde14e1d4d5..24cc22da1382b33832e940314cad5cd591d8e2c0 100644
--- a/Declaration/PT1.csv
+++ b/Declaration/PT1.csv
@@ -1,4 +1,5 @@
-400,0
+rpm,PT1
+400,0
 800,0.47
 1000,0.58
 1200,0.53
diff --git a/Declaration/Rims.csv b/Declaration/Rims.csv
index 64094a386e04d3da8ed3c39c618bf36a56113b8b..d1a72c53eb3f747e7edb6e0a1e1370fa3112529d 100644
--- a/Declaration/Rims.csv
+++ b/Declaration/Rims.csv
@@ -1,4 +1,5 @@
-5° DC Rims,3.03,3.03
+rims,F(a),F(b)
+5° DC Rims,3.03,3.03
 15° DC Rims,3.03,3.05
 Multipurpose – Radial,3,3
 Multipurpose – Diagonal,2.94,2.94
diff --git a/Declaration/Wheels.csv b/Declaration/Wheels.csv
index e8aabb9196fb060eef287ba2dd600787cc5968b9..3c01c43e64217d44b4aac1c60bed2d1e8be03cb6 100644
--- a/Declaration/Wheels.csv
+++ b/Declaration/Wheels.csv
@@ -1,4 +1,5 @@
-9 R 22.5,8.9,970,0
+Wheel,Inertia,d,Size-Class(0/1)
+9 R 22.5,8.9,970,0
 9.00 R 20,10.5,1018,0
 9.5 R 17.5,4.9,842,0
 10 R 17.5,5,858,0
diff --git a/Developer Guide/Segment Table Description.xlsx b/Developer Guide/Segment Table Description.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..c0d41b90f57bbfb785b3faff11d4440dd8978da0
Binary files /dev/null and b/Developer Guide/Segment Table Description.xlsx differ
diff --git a/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/cGBX.vb
index 0340b33d0a2924adbfef13a40e597c69b56ad7f4..bf1c73f5c194de390da677288f2b566a21b74aad 100644
--- a/VECTO/Input Files/cGBX.vb	
+++ b/VECTO/Input Files/cGBX.vb	
@@ -439,7 +439,7 @@ Public Class cGBX
 
         Dim MsgSrc As String
 
-        MsgSrc = "GBX/TCiteration/t= " & t
+        MsgSrc = "GBX/TCiteration/t= " & t + 1
 
         TC_PeBrake = 0
         TCReduce = False
diff --git a/VECTO/Input Files/cVEH.vb b/VECTO/Input Files/cVEH.vb
index 9d4c046eb6486df1e8ba02afdfa22508b104ddc7..7915ed7c158ccab95b7bebaf1bdb335c707f46c5 100644
--- a/VECTO/Input Files/cVEH.vb	
+++ b/VECTO/Input Files/cVEH.vb	
@@ -134,6 +134,21 @@ Public Class cVEH
 
     End Sub
 
+    Public Function Validate() As Boolean
+        Dim MsgSrc As String
+        Dim Check As Boolean = True
+
+        MsgSrc = "VEH/Validate"
+
+        If rdyn < 100 Then
+            WorkerMsg(tMsgID.Err, "Parameter 'Dynamic Tire Radius' is invalid (" & rdyn & "mm).", MsgSrc, sFilePath)
+            Check = False
+        End If
+
+        Return Check
+
+    End Function
+
     Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean
         Dim Itemp As Single
         Dim a0 As cAxle
diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb
index 08a595caf6ea59d2eba17ef1500de29283364c14..4e80f0fcf34934cb7fc8bce39f69d628dd1e6406 100644
--- a/VECTO/MODcalc/cPower.vb
+++ b/VECTO/MODcalc/cPower.vb
@@ -901,7 +901,7 @@ lbCheck:
                     '*** Start: Revolutions Check
 
                     'Check whether Revolutions too high! => Speed Reduction
-                    Do While nU > 1.2 * (ENG.Nrated - ENG.Nidle) + ENG.Nidle
+                    Do While Gear < GBX.GearCount AndAlso nU > 1.2 * (ENG.Nrated - ENG.Nidle) + ENG.Nidle
                         Gear += 1
                         nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping)
                     Loop
@@ -1799,6 +1799,7 @@ lb_nOK:
         Dim PlusGearLockUp As Boolean
         Dim MinusGearTC As Boolean
         Dim iRatio As Single
+        Dim n As Single
 
         'First time step (for vehicles with TC always the first gear is used)
         If t = 0 Then Return fStartGear(0, Grad)
@@ -1828,33 +1829,33 @@ lb_nOK:
             MinusGearTC = False
         End If
 
-        'Rpm
-        nU = MODdata.nU(t - 1)
-
-        If LastGear < GBX.GearCount AndAlso Not GBX.IsTCgear(LastGear + 1) Then
-            nUnext = Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear + 1) / (2 * VEH.rdyn * Math.PI / 1000)
-        Else
-            nUnext = 0
-        End If
-
-        OutOfRpmRange = (nU >= 1.2 * (ENG.Nrated - ENG.Nidle) + ENG.Nidle)
-
         '2C-to-1C
-        If MinusGearTC Then
+        If MinusGearTC And GBX.IsTCgear(LastGear) Then
             If fnUout(Vact, LastGear) <= ENG.Nidle Then
                 Return LastGear - 1
             End If
         End If
 
-        'No gear change 3s after last one -except rpm out of range
-        If Not PlusGearLockUp Then
+        If LastGear < GBX.GearCount AndAlso PlusGearLockUp Then
+            nUnext = Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear + 1) / (2 * VEH.rdyn * Math.PI / 1000)
+        Else
+            nUnext = 0
+        End If
+
+        'nU
+        If GBX.IsTCgear(LastGear) Then
+            n = MODdata.TCnu(t - 1)
+            nU = (Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear) / (2 * VEH.rdyn * Math.PI / 1000)) / n
+        Else
+            nU = Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear) / (2 * VEH.rdyn * Math.PI / 1000)
+            OutOfRpmRange = (nU >= 1.2 * (ENG.Nrated - ENG.Nidle) + ENG.Nidle) Or nU < ENG.Nidle
+            'No gear change 3s after last one -except rpm out of range
             If Not OutOfRpmRange AndAlso t - LastGearChange <= GBX.gs_ShiftTime And t > GBX.gs_ShiftTime - 1 Then Return LastGear
         End If
 
         'previous power demand
         LastPe = MODdata.Pe(t - 1)
-
-        'previous torque demand
+        'Torque
         Tq = LastPe * 1000 / (nU * 2 * Math.PI / 60)
 
         'Up/Downshift rpms
diff --git a/VECTO/M_MAIN.vb b/VECTO/M_MAIN.vb
index 4f692f3cc77ee61ec61d8ef2826f0a5939a93f73..33953d1eadd93ac14ea8546343aeaa1f270e3123 100644
--- a/VECTO/M_MAIN.vb
+++ b/VECTO/M_MAIN.vb
@@ -725,6 +725,8 @@ lbExit:
             'Check if file was saved in different mode
             If Cfg.DeclMode <> VEH.SavedInDeclMode Then WorkerMsg(tMsgID.Warn, "Vehicle file was created in " & OtherModeString & " Mode! Some parameters might be missing and cause errors.", MsgSrc, "<GUI>" & VEC.PathVEH)
 
+            If Not VEH.Validate Then Return False
+
         End If
 
    
diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb
index 3e446be80b85ed513cb752a3266241629c0d4cbf..99c36582175bae52197fe3f69ecce1a0c715b2db 100644
--- a/VECTO/VECTO_Global.vb
+++ b/VECTO/VECTO_Global.vb
@@ -12,7 +12,7 @@ Imports System.Collections.Generic
 
 Module VECTO_Global
 
-    Public Const VECTOvers As String = "2.0.4-beta"
+    Public Const VECTOvers As String = "2.0.4-beta1"
     Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4"
     Public MyAppPath As String
     Public MyConfPath As String
diff --git a/VECTO/cDeclaration.vb b/VECTO/cDeclaration.vb
index fffe0bb9d27227f0fe50e2eecdce29062081fab8..a21785b8a4d3907c68cdc1ecf5e705ba4d0da001 100644
--- a/VECTO/cDeclaration.vb
+++ b/VECTO/cDeclaration.vb
@@ -582,6 +582,9 @@ Public Class cDeclaration
             Return False
         End If
 
+        'Skip Header
+        file.ReadLine()
+
         Try
 
             Do While Not file.EndOfFile
@@ -609,6 +612,9 @@ Public Class cDeclaration
             Return False
         End If
 
+        'Skip Header
+        file.ReadLine()
+
         Try
 
             Do While Not file.EndOfFile
@@ -641,6 +647,9 @@ Public Class cDeclaration
             Return False
         End If
 
+        'Skip Header
+        file.ReadLine()
+
         Try
 
             Do While Not file.EndOfFile
diff --git a/VECTO/cDelaunayMap.vb b/VECTO/cDelaunayMap.vb
index 6595d4552b1e4b88ea0cc7ad2fe6f4d7184b12fb..ab34c3b6cbb8a48be3517d778c52c8c64c8a6f11 100644
--- a/VECTO/cDelaunayMap.vb
+++ b/VECTO/cDelaunayMap.vb
@@ -144,9 +144,8 @@ Public Class cDelaunayMap
 
         If DualMode Then
 
-            j = -1
-
             'Try exact solution for IsInside()
+            j = -1
             For Each tr In lDTXZ
                 j += 1
                 If IsInside(tr, x, z, True) Then
@@ -156,6 +155,7 @@ Public Class cDelaunayMap
             Next
 
             'Try approx. solution (fixes rounding errors when points lies exactly on an edge of a triangle)
+            j = -1
             For Each tr In lDTXZ
                 j += 1
                 If IsInside(tr, x, z, False) Then