diff --git a/backups/_db-201218-01/raw/000000.vlog b/backups/_db-201218-01/raw/000000.vlog
new file mode 100644
index 0000000..df6c666
Binary files /dev/null and b/backups/_db-201218-01/raw/000000.vlog differ
diff --git a/backups/_db-201218-01/raw/KEYREGISTRY b/backups/_db-201218-01/raw/KEYREGISTRY
new file mode 100644
index 0000000..67f1597
--- /dev/null
+++ b/backups/_db-201218-01/raw/KEYREGISTRY
@@ -0,0 +1 @@
+ˆ‰œœ+¥¶Îz {Hello Badger
\ No newline at end of file
diff --git a/backups/_db-201218-01/raw/LOCK b/backups/_db-201218-01/raw/LOCK
new file mode 100644
index 0000000..9aeda94
--- /dev/null
+++ b/backups/_db-201218-01/raw/LOCK
@@ -0,0 +1 @@
+38895
diff --git a/backups/_db-201218-01/raw/MANIFEST b/backups/_db-201218-01/raw/MANIFEST
new file mode 100644
index 0000000..0b55969
Binary files /dev/null and b/backups/_db-201218-01/raw/MANIFEST differ
diff --git a/backups/_db-201218-01/records/000000.vlog b/backups/_db-201218-01/records/000000.vlog
new file mode 100644
index 0000000..d041968
Binary files /dev/null and b/backups/_db-201218-01/records/000000.vlog differ
diff --git a/backups/_db-201218-01/records/KEYREGISTRY b/backups/_db-201218-01/records/KEYREGISTRY
new file mode 100644
index 0000000..0339348
--- /dev/null
+++ b/backups/_db-201218-01/records/KEYREGISTRY
@@ -0,0 +1 @@
+;µÐÕ0.Ñþý|uG…Hello Badger
\ No newline at end of file
diff --git a/backups/_db-201218-01/records/LOCK b/backups/_db-201218-01/records/LOCK
new file mode 100644
index 0000000..9aeda94
--- /dev/null
+++ b/backups/_db-201218-01/records/LOCK
@@ -0,0 +1 @@
+38895
diff --git a/backups/_db-201218-01/records/MANIFEST b/backups/_db-201218-01/records/MANIFEST
new file mode 100644
index 0000000..0b55969
Binary files /dev/null and b/backups/_db-201218-01/records/MANIFEST differ
diff --git a/backups/_db-201218-01/sensor/000000.vlog b/backups/_db-201218-01/sensor/000000.vlog
new file mode 100644
index 0000000..e100441
Binary files /dev/null and b/backups/_db-201218-01/sensor/000000.vlog differ
diff --git a/backups/_db-201218-01/sensor/KEYREGISTRY b/backups/_db-201218-01/sensor/KEYREGISTRY
new file mode 100644
index 0000000..5613c7c
--- /dev/null
+++ b/backups/_db-201218-01/sensor/KEYREGISTRY
@@ -0,0 +1 @@
+¬\µØù½•MØçv’ÚñœHello Badger
\ No newline at end of file
diff --git a/backups/_db-201218-01/sensor/LOCK b/backups/_db-201218-01/sensor/LOCK
new file mode 100644
index 0000000..74a8d12
--- /dev/null
+++ b/backups/_db-201218-01/sensor/LOCK
@@ -0,0 +1 @@
+27554
diff --git a/backups/_db-201218-01/sensor/MANIFEST b/backups/_db-201218-01/sensor/MANIFEST
new file mode 100644
index 0000000..0b55969
Binary files /dev/null and b/backups/_db-201218-01/sensor/MANIFEST differ
diff --git a/backups/_db-201218-01/trackings/000000.vlog b/backups/_db-201218-01/trackings/000000.vlog
new file mode 100644
index 0000000..95a8aab
Binary files /dev/null and b/backups/_db-201218-01/trackings/000000.vlog differ
diff --git a/backups/_db-201218-01/trackings/KEYREGISTRY b/backups/_db-201218-01/trackings/KEYREGISTRY
new file mode 100644
index 0000000..b1e37d7
--- /dev/null
+++ b/backups/_db-201218-01/trackings/KEYREGISTRY
@@ -0,0 +1 @@
+ßÁuðÓJäe»|?^�¢˜Hello Badger
\ No newline at end of file
diff --git a/backups/_db-201218-01/trackings/LOCK b/backups/_db-201218-01/trackings/LOCK
new file mode 100644
index 0000000..9aeda94
--- /dev/null
+++ b/backups/_db-201218-01/trackings/LOCK
@@ -0,0 +1 @@
+38895
diff --git a/backups/_db-201218-01/trackings/MANIFEST b/backups/_db-201218-01/trackings/MANIFEST
new file mode 100644
index 0000000..0b55969
Binary files /dev/null and b/backups/_db-201218-01/trackings/MANIFEST differ
diff --git a/core/datamodel.go b/core/datamodel.go
index aab6103..45468bb 100644
--- a/core/datamodel.go
+++ b/core/datamodel.go
@@ -148,7 +148,7 @@ func ConvertUbxSensorData(msg interface{}) (*SensorData, error) {
         sd.HeadMotion  = float64(v.HeadMot_dege5) / 1e+5
         sd.HeadDevice  = float64(v.HeadVeh_dege5) / 1e+5
         sd.HeadingAcc  = float64(v.HeadAcc_dege5) / 1e+5
-        sd.Speed       = float64(v.GSpeed_mm_s) / 3600
+        sd.Speed       = float64(v.GSpeed_mm_s) / 3.6e+3
     case *ublox.HnrPvt:
         //logrus.Println("HNR-PVT")
         sd.itow = v.ITOW_ms
@@ -161,7 +161,7 @@ func ConvertUbxSensorData(msg interface{}) (*SensorData, error) {
         sd.HeadMotion  = float64(v.HeadMot_dege5) / 1e+5
         sd.HeadDevice  = float64(v.HeadVeh_dege5) / 1e+5
         sd.HeadingAcc  = float64(v.HeadAcc_dege5) / 1e+5
-        sd.Speed       = float64(v.GSpeed_mm_s) / 3600
+        sd.Speed       = float64(v.GSpeed_mm_s) / 3.6e+3
     case *ublox.NavAtt:
         //logrus.Println("NAV-ATT")
         sd.itow = v.ITOW_ms
diff --git a/templates/replay.html b/templates/replay.html
new file mode 100644
index 0000000..7ba9b53
--- /dev/null
+++ b/templates/replay.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.bundle.js"></script>
+  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
+  <script src="https://api.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.js"></script>
+  <link href="https://api.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.css" rel="stylesheet" />
+  <style>
+    body { margin: 0; padding: 0; }
+    #map { position: absolute; top: 0; bottom: 0; width: 100%; }
+  </style>
+  <script src="static/scripts/websocket.js"></script>
+  <style>
+
+    .legend {
+      background-color: #fff;
+      border-radius: 3px;
+      bottom: 30px;
+      box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
+      font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif;
+      padding: 10px;
+      position: absolute;
+      right: 10px;
+      z-index: 1;
+    }
+
+    .legend h4 {
+      margin: 0 0 10px;
+    }
+
+    .legend div span {
+      border-radius: 50%;
+      display: inline-block;
+      height: 10px;
+      margin-right: 5px;
+      width: 10px;
+    }
+
+    body{margin:0; padding:0; font-size:13px; font-family:Georgia, "Times New Roman", Times, serif; color:#919191; background-color:#232323;}
+
+    .float-child {
+      width: 45%;
+      float: left;
+      padding: 20px;
+    }
+
+    .scene {
+      width: 200px;
+      height: 200px;
+      border: 0px solid #CCC;
+      margin: 75px;
+      perspective: 400px;
+    }
+
+    .cube {
+      width: 200px;
+      height: 200px;
+      position: relative;
+      transform-style: preserve-3d;
+      /*transform: translateZ(-100px);*/
+      /*transition: transform 25ms;*/
+    }
+
+    .cube.show-front  { transform:/*translateZ(-100px)*/ rotateY(   0deg); }
+    .cube.show-right  { transform:/*translateZ(-100px)*/ rotateY( -90deg); }
+    .cube.show-back   { transform:/*translateZ(-100px)*/ rotateY(-180deg); }
+    .cube.show-left   { transform:/*translateZ(-100px)*/ rotateY(  90deg); }
+    .cube.show-top    { transform:/*translateZ(-100px)*/ rotateX( -90deg); }
+    .cube.show-bottom { transform:/*translateZ(-100px)*/ rotateX(  90deg); }
+
+    .cube__face {
+      position: absolute;
+      width: 200px;
+      height: 200px;
+      border: 1px solid white;
+      line-height: 200px;
+      font-size: 40px;
+      font-weight: bold;
+      color: white;
+      text-align: center;
+    }
+
+    .cube__face--front  { background: hsla(  0, 100%, 50%, 0.7); }
+    .cube__face--right  { background: hsla( 60, 100%, 50%, 0.7); }
+    .cube__face--back   { background: hsla(120, 100%, 50%, 0.7); }
+    .cube__face--left   { background: hsla(180, 100%, 50%, 0.7); }
+    .cube__face--top    { background: hsla(240, 100%, 50%, 0.7); }
+    .cube__face--bottom { background: hsla(300, 100%, 50%, 0.7); }
+
+    .cube__face--front  { transform: rotateY(  0deg) translateZ(100px); }
+    .cube__face--right  { transform: rotateY( 90deg) translateZ(100px); }
+    .cube__face--back   { transform: rotateY(180deg) translateZ(100px); }
+    .cube__face--left   { transform: rotateY(-90deg) translateZ(100px); }
+    .cube__face--top    { transform: rotateX( 90deg) translateZ(100px); }
+    .cube__face--bottom { transform: rotateX(-90deg) translateZ(100px); }
+
+    label { margin-right: 10px; }
+  </style>
+</head>
+<body>
+<table style="font-size: small">
+  <tr>
+    <td valign="top" width="50%">
+      <p>Click "Open" to create a connection to the server.
+      </p>
+      <form>
+        <button id="open">Verbinden</button>
+        <button id="close">Trennen</button>
+        <p style="display: none" >
+          <input id="input" type="text" value="Hello world!">
+          <button id="send">Send</button>
+        </p>
+      </form>
+
+      <button id="messung starten">Messung starten</button>
+      <button id="messung beenden">Messung beenden</button>
+      <button id="messung speichern">Messung speichern</button>
+      <button id="messung verwerfen">Messung verwerfen</button>
+      <button id="messung laden">Messung laden</button></li>
+    </td>
+    <td valign="top" width="100%">
+      <div id="output"></div>
+    </td>
+  </tr>
+</table>
+
+<div class="float-container">
+  <div class="float-child">
+    <label id="TCPlong" style= "font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif">Smartphone long: </label>
+    <label id="TCPlat" style= "font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif">Smartphone lat: </label>
+    <label id="SERIALlong" style= "font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif">Ublox long: </label>
+    <label id="SERIALlat" style= "font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif">Ublox lat: </label>
+    <label id="diffLong" style= "font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif">Differenz long: </label>
+    <label id="diffLat" style= "font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif">Differenz lat: </label>
+    <div class="scene" style='width: 500px; height: 500px;'>
+      <div id="map" style='width: 500px; height: 500px;'></div>
+      <div id="state-legend" class="legend">
+        <h4>Legende</h4>
+        <div><span style="background-color: yellow"></span>Ublox</div>
+        <div><span style="background-color: blue"></span>Smartphone</div>
+      </div>
+    </div>
+  </div>
+  <div class="float-child">
+    <div class="scene">
+      <p style="font-size: large">Smartphone</p>
+      <div id="gyroscopeTCP" class="cube">
+        <div class="cube__face cube__face--front">front</div>
+        <div class="cube__face cube__face--back">back</div>
+        <div class="cube__face cube__face--right">right</div>
+        <div class="cube__face cube__face--left">left</div>
+        <div class="cube__face cube__face--top">top</div>
+        <div class="cube__face cube__face--bottom">bottom</div>
+      </div>
+    </div>
+
+    <div class="scene">
+      <p style="font-size: large">Ublox</p>
+      <div id="gyroscopeSERIAL" class="cube">
+        <div class="cube__face cube__face--front">front</div>
+        <div class="cube__face cube__face--back">back</div>
+        <div class="cube__face cube__face--right">right</div>
+        <div class="cube__face cube__face--left">left</div>
+        <div class="cube__face cube__face--top">top</div>
+        <div class="cube__face cube__face--bottom">bottom</div>
+      </div>
+    </div>
+  </div>
+</div>
+
+<script src="https://d3js.org/d3.v3.min.js" charset="utf-8"></script>
+<script src="static/scripts/map.js"></script>
+
+<div style="width: 600px; height: 400px;">
+  <canvas id="myChart" width="400" height="200"></canvas>
+</div>
+<script src="static/scripts/chart.js"></script>
+</body>
+</html>
\ No newline at end of file
