diff --git a/back-end/head.cpp b/back-end/head.cpp
index 8658300..43e5b6d 100644
--- a/back-end/head.cpp
+++ b/back-end/head.cpp
@@ -3,48 +3,42 @@
 #include <QDateTime>
 
 double Head::getAngle() const {
-    return angle;
+    return _angle;
 }
 
 void Head::setAngle(double angle) {
-    this->angle = angle;
+    _angle = angle;
 }
 
 double Head::getY() const {
-    return y;
+    return _y;
 }
 
 void Head::setY(double y) {
-    this->y = y;
+    _y = y;
 }
 
 double Head::getX() const {
-    return x;
+    return _x;
 }
 
 void Head::setX(double x) {
-    this->x = x;
+    _x = x;
 }
 
 void Head::render(){
-    qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time;
-    double my = y + *speed * sin(angle * TO_RADIAN);
-    y += (my - y) / 1000 * tempTime;
-    time = QDateTime::currentMSecsSinceEpoch();
+    qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - _time;
+    double my = _y + *_speed * sin(_angle * TO_RADIAN);
+    _y += (my - _y) / 1000 * tempTime;
+    _time = QDateTime::currentMSecsSinceEpoch();
 }
 
-double *Head::getSpeed() const
-{
-    return speed;
+double Head::getSpeed() const {
+    return *_speed;
 }
 
-void Head::setSpeed(double *speed)
-{
-    this->speed = speed;
-}
-
-Head::Head() {
-
+Head::Head(double *spead) {
+    _speed = spead;
 }
 
 Head::~Head() {
diff --git a/back-end/head.h b/back-end/head.h
index ae10fc3..2415281 100644
--- a/back-end/head.h
+++ b/back-end/head.h
@@ -9,12 +9,12 @@
 class Head : BaseClass
 {
 private:
-    double x, y, angle;
-    QString texture;
-    qint64 time;
-    double *speed;
+    double _x, _y, _angle;
+    QString _texture;
+    qint64 _time;
+    double *_speed;
 public:
-    Head();
+    Head(double *spead);
     double getAngle() const;
     void setAngle(double angle);
 
@@ -24,7 +24,7 @@ public:
     double getX() const;
     void setX(double x);
 
-    double *getSpeed() const;
+    double getSpeed() const;
     void setSpeed(double *value);
     
     void render();
diff --git a/back-end/snake.cpp b/back-end/snake.cpp
index d897c1d..493760b 100644
--- a/back-end/snake.cpp
+++ b/back-end/snake.cpp
@@ -1,23 +1,25 @@
 #include "snake.h"
 
-void Snake::setItems(const QVector<Head *> &value)
-{
-    items = value;
-}
-
-QVector<Head *> Snake::getItems() const
-{
-    return items;
-}
-
-void Snake::setSpeedHead(){
-    for(int i = 0;i < getItems().size(); ++i){
-        getItems().at(i)->setSpeed(&speed);
-    }
+const QVector<Head *> &Snake::getItems() const {
+    return _items;
 }
 
 Snake::Snake() :
-    speed(SPEEDSNAKE)
-{
-    setSpeedHead();
+    _speed(SPEEDSNAKE){
+}
+
+bool Snake::init(int size, double spead) {
+
+    if (size < 0 || spead <= 0) {
+        return false;
+    }
+
+    _speed = spead;
+
+    for ( int i = size; i >= 0; --i ) {
+        _items.push_back( new Head(&_speed));
+    }
+
+    return true;
+
 }
diff --git a/back-end/snake.h b/back-end/snake.h
index a2ad9b1..6e15c18 100644
--- a/back-end/snake.h
+++ b/back-end/snake.h
@@ -8,14 +8,13 @@
 class Snake
 {
 private:
-    QVector<Head*> items;
-    double speed;
-    bool isClick;
+    QVector<Head*> _items;
+    double _speed;
+    bool _isClick;
 public:
     Snake();
-    bool init(int size, bool click);
-    void setItems(const QVector<Head *> &value);
-    QVector<Head *> getItems() const;
+    bool init(int size, double spead);
+    const QVector<Head*>& getItems() const;
     void setSpeedHead (void);
 };