diff --git a/back-end/head.cpp b/back-end/head.cpp
index ef02a09..ff8ca4f 100644
--- a/back-end/head.cpp
+++ b/back-end/head.cpp
@@ -1,4 +1,6 @@
 #include "head.h"
+#include <cmath>
+#include <QDateTime>
 
 double Head::getAngle() const {
     return angle;
@@ -24,6 +26,24 @@ void Head::setX(double x) {
     this->x = x;
 }
 
+double Head::getSpeed() const
+{
+    return speed;
+}
+
+void Head::setSpeed(double value)
+{
+    speed = value;
+}
+
+void Head::render(){
+    qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time;
+    double my = y + speed * sin(angle * TO_RADIAN);
+    y += (my - y) / 1000 * tempTime;
+    time = QDateTime::currentMSecsSinceEpoch();
+
+}
+
 Head::Head() {
 
 }
diff --git a/back-end/head.h b/back-end/head.h
index f26ea94..2072101 100644
--- a/back-end/head.h
+++ b/back-end/head.h
@@ -1,5 +1,7 @@
 #ifndef HEAD_H
 #define HEAD_H
+#define TO_RADIAN 0.017453293
+
 
 #include "baseclass.h"
 #include <QString>
@@ -7,8 +9,9 @@
 class Head : BaseClass
 {
 private:
-    double x,y,angle;
+    double x, y, angle, speed;
     QString texture;
+    qint64 time;
 public:
     Head();
     double getAngle() const;
@@ -20,6 +23,11 @@ public:
     double getX() const;
     void setX(double x);
 
+    double getSpeed() const;
+    void setSpeed(double value);
+
+    void render();
+
     ~Head();
 };