*Refactored moveSnake function. The logic was wrong and
    there was a redundancy.
  *Created a fullViewRefresh function to execute all view
    methods at once to create a more fluid look to the
    movement of the snake.
  *Created snakeEatingCheck to see if the snake has
    gotten to a place where there is food.
  *Once the snakeEatingCheck runs true it will automatically
    execute snakeHasEaten function.
  *The snakeHasEaten function will:
     put new food on the board
     make the snake grow
     refresh the screen
     add to the player's score
  *The fluidity of movement when the snake eats is still
    somewhat awkward. I would like to optimize the movements
    of the snake
  *The score still does not show on the screen yet.
  *There are still no proper death conditions for the snake.

diff --git a/src/snakeJS.js b/src/snakeJS.js
index 720b95a..e1241ee 100644
--- a/src/snakeJS.js
+++ b/src/snakeJS.js
@@ -14,6 +14,7 @@ function SnakeGameController(){
 	this.conInterval = setInterval();
 	this.snakeGameBoard = [];
 	this.snakeFoodPosition = null
+	this.playerScore = 0
 }

 SnakeGameController.prototype = {
@@ -87,12 +88,31 @@ SnakeGameController.prototype = {
 	},

 	executeTurn: function(){
+		this.fullViewRefresh()
+		this.Model.moveSnake();
+		this.placeSnakeOnBoard()
+		this.snakeEatingCheck();
+		this.gameIsActive()
+	},
+
+	fullViewRefresh: function(){
 		this.View.refreshScreen();
 		this.View.updateSnakeScreen(this.Model.allSnakeBodyPositions());
 		this.View.paintFoodOnCanvas(this.snakeFoodPosition)
+	},
+
+	snakeEatingCheck: function(){
+		if(this.Model.snakeBody[0].boardPos === this.snakeFoodPosition){
+			this.snakeHasEaten()
+		}
+	},
+
+	snakeHasEaten: function(){
+		this.setFood()
+		this.Model.growSnake();
 		this.Model.moveSnake();
-		this.placeSnakeOnBoard()
-		this.gameIsActive()
+		this.fullViewRefresh();
+		this.playerScore +=1
 	},

 	gameIsActive: function(){
diff --git a/src/snakeJSModel.js b/src/snakeJSModel.js
index 21e04e2..2bec1d0 100644
--- a/src/snakeJSModel.js
+++ b/src/snakeJSModel.js
@@ -11,6 +11,11 @@ SnakeModel.prototype = {
 	snakeBodyLength: function(){
 		return this.snakeBody.length
 	},
+
+	growSnake: function(){
+		this.snakeBody.push(new SnakeGrowth(null, this.snakeBodyLength()))
+	},
+
 	allSnakeBodyPositions: function(){
 		arrayOfPositions = []
 		for(var x=0; x<this.snakeBodyLength(); x++){
@@ -20,10 +25,10 @@ SnakeModel.prototype = {
 	},

 	moveSnake: function(){
-		for(var x=0; x<=(this.snakeBodyLength()-2); x++){
-			this.snakeBody[x].boardPos = this.snakeBody[x+1].boardPos
+		for(var x=(this.snakeBodyLength()-1); x>=1; x--){
+			this.snakeBody[x].boardPos = this.snakeBody[x-1].boardPos
 		}
-		this.snakeBody[ this.snakeBodyLength()-1 ].boardPos = this.snakeBody[ this.snakeBodyLength()-1 ].boardPos + this.headPosition
+		this.snakeBody[0].boardPos += this.headPosition
 	},

 	changeDirectionUp: function(){