diff --git a/BlankProjectTemplate/src/Food.py b/BlankProjectTemplate/src/Food.py
index 4256507ae1e53b03cd7734ac8fd0794200b20f33..aaed1139a10cbd97c62a03987dd0c5fea7bcf892 100644
--- a/BlankProjectTemplate/src/Food.py
+++ b/BlankProjectTemplate/src/Food.py
@@ -26,7 +26,11 @@ class Food():
     #  @param y is the location of snake's y-axis head location
     #  @param location is a list that gives the location of present food
     #  @param screenSize is the size of the screen
-    def redraw_food(self, x, y, location,screenSize):
+    def redraw_food(self, x, y, location,screenSize, snake_loc):
+        
         if(abs(x - location[0]) < 15 and abs(y - location[1]) < 15):
             location[0] = randint(0, grid_length - 1) * self.size
             location[1] = randint(0, grid_length - 1) * self.size
+            if(location[0], location[1] in snake_loc):
+               location[0] = randint(0, grid_length - 1) * self.size
+               location[1] = randint(0, grid_length - 1) * self.size
diff --git a/BlankProjectTemplate/src/Gameplay.py b/BlankProjectTemplate/src/Gameplay.py
index 04af693d90a8634840a0b0d09c594cd75f229e1b..7a1d7fb5e712ced9aaf474f5c6b77687ce92f0c6 100644
--- a/BlankProjectTemplate/src/Gameplay.py
+++ b/BlankProjectTemplate/src/Gameplay.py
@@ -7,144 +7,145 @@ from random import randint
 from Snake import *
 from Food import *
 
-#defining a list to update snanke's length
-snake_loc = []
-#variable to increment snake's length, initially it would be 1
-snake_length = 1
-
-speed = 70
-
-# 0 gives (- direction)
-# 1 gives (+ direction)
-direction = 1
-# 0 - x-axis , 1 - y-axis
-axis = 0
-
-score = 0
-
-# parameters for initializing food on the screen
-food_location = []
-food_x = randint(0, grid_length - 1) * size
-food_y = randint(0, grid_length - 1) * size
-food_location = [food_x, food_y]
-
-##initialize snake and draw snake body somewhere on the screen
-
-snake = Snake(size, 0, 20, 1)
-pygame.draw.rect(win, red , [x,y, size, size])
-food = Food(size)
-
-
-#Loop through the events as long as the game is running
-run = True 
-while run:
-    
-    #delay controls part of speed
-    pygame.time.delay(speed) 
-
-    for event in pygame.event.get():
-
-        if event.type == pygame.QUIT:
-            run = False
-
-        #Each event type has an integer assigned to it. KEYDOWN has the code 2
-        if event.type == pygame.KEYDOWN:
-            if (event.key == pygame.K_LEFT):
-                # if snake is moving up or down, turn left, otherwise don't turn
-                if (snake.axis): snake.direct = -1
-                snake.axis = 0
-            if (event.key == pygame.K_RIGHT):
-                #if snake is moving up or down turn right, otherwise dont turn
-                if (snake.axis): snake.direct = 1 
-                snake.axis = 0
-            if (event.key == pygame.K_UP):
-                #if snake is moving left or right turn up, otherwise dont turn
-                if (not snake.axis): snake.direct = -1 
-                snake.axis = 1
-            if (event.key == pygame.K_DOWN):
-                #if snake is moving left or right turn down, otherwise dont turn
-                if (not snake.axis): snake.direct = 1 
-                snake.axis = 1
-
-    #Snake moving depending on axis and direction
-    if (snake.axis):
-        y += (size)*snake.direct
-    else:
-        x += (size)*snake.direct
-   
-    #Boundary conditions for snake hitting window edge
-    if (x < 0 or
-        y < 0 or
-        y > screenSize - size or
-        x > screenSize - size):
-        
-        pygame.quit() #for now, quit the game when snake hits boundary
+def Gameplay(speed, colour, backgroundColour):
+    #defining a list to update snanke's length
+    snake_loc = []
+    #variable to increment snake's length, initially it would be 1
+    snake_length = 1
+
+    speed = 70
 
-##        snake.die()
+    # 0 gives (- direction)
+    # 1 gives (+ direction)
+    direction = 1
+    # 0 - x-axis , 1 - y-axis
+    axis = 0
 
-#---------------------FOR WRAPING SNAKE AROUND WINDOW---------------------
-    
-##    if x < 0:
-##        #x = 0
-##        x = screenSize - size
-##    if y < 0:
-##        #y = 0
-##        y = screenSize - size
-##    if y > screenSize - size:
-##        #y = 500 - size
-##        y = 0
-##    if x > screenSize - size:
-##        #x = 500 - size
-##        x = 0
+    score = 0
 
-#-------------------------------------------------
+    # parameters for initializing food on the screen
+    food_location = []
+    food_x = randint(0, grid_length - 1) * size
+    food_y = randint(0, grid_length - 1) * size
+    food_location = [food_x, food_y]
 
-    if(abs(x - food_location[0]) < 15 and abs(y - food_location[1]) < 15):
-        score += 10
+    ##initialize snake and draw snake body somewhere on the screen
 
-        #increment the length by 3 unit every time
-        snake_length += 3
+    snake = Snake(size, 0, 20, 1)
+    pygame.draw.rect(win, colour , [x,y, size, size])
+    food = Food(size)
 
+
+    #Loop through the events as long as the game is running
+    run = True 
+    while run:
+        
+        #delay controls part of speed
+        pygame.time.delay(speed) 
+
+        for event in pygame.event.get():
+
+            if event.type == pygame.QUIT:
+                run = False
+
+            #Each event type has an integer assigned to it. KEYDOWN has the code 2
+            if event.type == pygame.KEYDOWN:
+                if (event.key == pygame.K_LEFT):
+                    # if snake is moving up or down, turn left, otherwise don't turn
+                    if (snake.axis): snake.direct = -1
+                    snake.axis = 0
+                if (event.key == pygame.K_RIGHT):
+                    #if snake is moving up or down turn right, otherwise dont turn
+                    if (snake.axis): snake.direct = 1 
+                    snake.axis = 0
+                if (event.key == pygame.K_UP):
+                    #if snake is moving left or right turn up, otherwise dont turn
+                    if (not snake.axis): snake.direct = -1 
+                    snake.axis = 1
+                if (event.key == pygame.K_DOWN):
+                    #if snake is moving left or right turn down, otherwise dont turn
+                    if (not snake.axis): snake.direct = 1 
+                    snake.axis = 1
+
+        #Snake moving depending on axis and direction
+        if (snake.axis):
+            y += (size)*snake.direct
+        else:
+            x += (size)*snake.direct
+       
+        #Boundary conditions for snake hitting window edge
+        if (x < 0 or
+            y < 0 or
+            y > screenSize - size or
+            x > screenSize - size):
+            
+            pygame.quit() #for now, quit the game when snake hits boundary
+
+    ##        snake.die()
+
+    #---------------------FOR WRAPING SNAKE AROUND WINDOW---------------------
         
-    win.fill(white)
-    
-    font = pygame.font.SysFont("times",30)
-    text = font.render("Score = " + str(score),True,[0,0,0])
-    win.blit(text,(0,0))
-    #function to print 
-    #consumption of food block
-    food.redraw_food(x, y, food_location, screenSize)
-
-    if ([x,y] in snake_loc) and snake_length > 1:        
-        pygame.time.delay(1000)
-        pygame.quit() #quit for now, but should return to main menu
-    
-    snake_head = []
-    snake_head.append(x)
-    snake_head.append(y)
-
-    snake_loc.append(snake_head)
-    
-
-    snake_blocks = len(snake_loc)
-
-    #Draw food item
-    food.draw_food(food_location)
-
-    
-    if snake_blocks > snake_length:
-        #keep updating the new block
-        del snake_loc[0]
-    '''
-    Logic for updating the length is taken from:
-    CodeWithHarry, CodeWithHarry. “Snakes Game: Length Increment Logic - Python Game Development Using Pygame In Hindi #17.”
-    YouTube, YouTube, 2 Oct. 2018,
-    www.youtube.com/watch?v=mkGJb0W03DM&index=17&list=PLu0W_9lII9ailUQcxEPZrWgDoL36BtPYb.
-    '''
-    
-    #Draw snake
-    snake.draw(snake_loc)
-    #update display
-    pygame.display.update()
-
-pygame.quit()
+    ##    if x < 0:
+    ##        #x = 0
+    ##        x = screenSize - size
+    ##    if y < 0:
+    ##        #y = 0
+    ##        y = screenSize - size
+    ##    if y > screenSize - size:
+    ##        #y = 500 - size
+    ##        y = 0
+    ##    if x > screenSize - size:
+    ##        #x = 500 - size
+    ##        x = 0
+
+    #-------------------------------------------------
+
+        if(abs(x - food_location[0]) < 15 and abs(y - food_location[1]) < 15):
+            score += 10
+
+            #increment the length by 3 unit every time
+            snake_length += 3
+
+            
+        win.fill(backgroundColour)
+        
+        font = pygame.font.SysFont("times",30)
+        text = font.render("Score = " + str(score),True,[0,0,0])
+        win.blit(text,(0,0))
+        
+        if ([x,y] in snake_loc) and snake_length > 1:        
+            pygame.time.delay(1000)
+            pygame.quit() #quit for now, but should return to main menu
+        
+        snake_head = []
+        snake_head.append(x)
+        snake_head.append(y)
+
+        snake_loc.append(snake_head)
+        
+        #function to print 
+        #consumption of food block
+        food.redraw_food(x, y, food_location, screenSize, snake_loc)
+
+        snake_blocks = len(snake_loc)
+
+        #Draw food item
+        food.draw_food(food_location)
+
+        
+        if snake_blocks > snake_length:
+            #keep updating the new block
+            del snake_loc[0]
+        '''
+        Logic for updating the length is taken from:
+        CodeWithHarry, CodeWithHarry. “Snakes Game: Length Increment Logic - Python Game Development Using Pygame In Hindi #17.”
+        YouTube, YouTube, 2 Oct. 2018,
+        www.youtube.com/watch?v=mkGJb0W03DM&index=17&list=PLu0W_9lII9ailUQcxEPZrWgDoL36BtPYb.
+        '''
+        
+        #Draw snake
+        snake.draw(snake_loc)
+        #update display
+        pygame.display.update()
+
+    pygame.quit()
diff --git a/BlankProjectTemplate/src/Interface.py b/BlankProjectTemplate/src/Interface.py
index c82c0c2e80c9169aa084bf3d7c95693bc31c31ce..75302d322c67297cb2c665a148c652a8818b2a1f 100644
--- a/BlankProjectTemplate/src/Interface.py
+++ b/BlankProjectTemplate/src/Interface.py
@@ -8,13 +8,6 @@ import highscore, theme
 
 ## @brief A Class that will contain useful functions in order for the creation of main interface
 class GUI():
-  
-  ## @brief A function for running other files
-  #  @details Executes another python file when this is selected, Given that the file is in same folder.
-  #  @param runfilename The name of the file to be executed 
-  def runfile(runfilename):
-    with open(runfilename,"r") as rnf:
-      exec(rnf.read())
 
   ## @brief A method to create a button
   #  @details This method will make a box on the interface
@@ -41,70 +34,60 @@ class GUI():
 #  @details This will output the main page of this game by using the class above
 def main():
   pygame.init()
-  lightgray = [200,200,200]
-  gray = [180,180,180]
+  lightBlue = [200,200,200]
   darkgray = [100,100,100]
-  red = [255,0,0]
+  image1 = pygame.image.load("Snake_Game_Logo_background.png")
+  image2 = pygame.image.load("snake_image.png")
 
   #while loop required to always refresh the page
   run = True
   while run:
       game = pygame.display.set_mode((800, 610))
-      game.fill([213, 219, 219])
+      game.blit(image1,(0,0))
+      game.blit(image2,(550,0))
       mousepos = pygame.mouse.get_pos() #checking mouse position
       mouseclick = pygame.mouse.get_pressed()#checking mouse pressed
       pygame.display.set_caption("Lets Play")
-      GUI.text('SNAKE GAME',"monospace", 100,red,(100,80),game)
 
       #Adding the play game button
-      if (130 <= mousepos[0] <= 130+250 and 250 <= mousepos[1] <= 250+100 ):
+      if (400 <= mousepos[0] <= 400+170 and 250 <= mousepos[1] <= 300+50 ):
         #checks if the mouse is hovering over the button
-          GUI.button(game,darkgray, [130,250,250,100], 0)
+          GUI.button(game,darkgray, [400,250,170,50], 0)
           #checking if the button is clicked
           if mouseclick[0] == 1:
             theme.Themes.themes()        
       else:
-          GUI.button(game,lightgray, [130,250,250,100], 0)
-      GUI.text('Beginner',"comicsansms", 40,[10, 200, 10],(170,270),game)
+          GUI.button(game,lightBlue, [400,250,170,50], 0)
+      GUI.text('Beginner',"comicsansms", 35,[10, 200, 10],(410,250),game)
 
-      if (430 <= mousepos[0] <= 430+250 and 250 <= mousepos[1] <= 250+100 ):
+      if (430 <= mousepos[0] <= 430+220 and 350 <= mousepos[1] <= 350+50 ):
         #checks if the mouse is hovering over the button
-          GUI.button(game,darkgray, [430,250,250,100], 0)
+          GUI.button(game,darkgray, [430,350,220,50], 0)
           #checking if the button is clicked
           if mouseclick[0] == 1:
             theme.Themes.themes()          
       else:
-          GUI.button(game,lightgray, [430,250,250,100], 0)
-      GUI.text('Intermediate',"comicsansms", 40,[250, 250, 10],(431,270),game)
+          GUI.button(game,lightBlue, [430,350,220,50], 0)
+      GUI.text('Intermediate',"comicsansms", 35,[250, 250, 10],(430,350),game)
 
-      if (270 <= mousepos[0] <= 270+250 and 400 <= mousepos[1] <= 400+100 ):
+      if (400 <= mousepos[0] <= 400+180 and 450 <= mousepos[1] <= 450+50 ):
         #checks if the mouse is hovering over the button
-          GUI.button(game,darkgray, [270,400,250,100], 0)
+          GUI.button(game,darkgray, [400,450,180,50], 0)
           #checking if the button is clicked
           if mouseclick[0] == 1:
             theme.Themes.themes()         
       else:
-          GUI.button(game,lightgray, [270,400,250,100], 0)
-      GUI.text('Advanced',"comicsansms", 40,[200, 10, 30],(300,420),game)
+          GUI.button(game,lightBlue, [400,450,180,50], 0)
+      GUI.text('Advanced',"comicsansms", 35,[200, 10, 30],(410,450),game)
 
-      #Highest Score
-      if ( 10 <= mousepos[0] <= 310 and 550 <= mousepos[1] <= 550 +55):
-        GUI.button(game,[200,0,0],[10,550,300,55], 0)
+      if (15 <= mousepos[0] <= 15+115 and 565 <= mousepos[1] <= 565+35 ):
         if mouseclick[0] == 1:
-            highscore.main()
-      else:
-        GUI.button(game,[180,180,180], [10,550,300,55], 0)
-      GUI.text('HIGHEST SCORE',"comicsansms", 35,[0, 0, 0],(10,550),game)
-      
-      #If user wants to quit
-      if ( 670 <= mousepos[0] <= 670+105 and 550 <= mousepos[1] <= 550 +55):
-        GUI.button(game,[200,0,0],[670,550,105,55], 0)
+          highscore.main()
+
+      if (725 <= mousepos[0] <= 725+50 and 565 <= mousepos[1] <= 565+35 ):
         if mouseclick[0] == 1:
-            pygame.quit()
-            sys.exit()
-      else:
-        GUI.button(game,[180,180,180], [670,550,105,55], 0)
-      GUI.text('QUIT',"comicsansms", 35,(0, 0, 0),(670,550),game)
+          pygame.quit()
+          sys.exit()
       
       pygame.display.update()
 
diff --git a/BlankProjectTemplate/src/Snake_Game_Logo_background.png b/BlankProjectTemplate/src/Snake_Game_Logo_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..f7f0eeb47166be8f75f26869294bd64d42d10e01
Binary files /dev/null and b/BlankProjectTemplate/src/Snake_Game_Logo_background.png differ
diff --git a/BlankProjectTemplate/src/__pycache__/Food.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/Food.cpython-37.pyc
index 6b0953264c84128a6d088c3e19e941613b4f95b1..9a830c92d74ee361f1368ca26cb0c6d707d95e30 100644
Binary files a/BlankProjectTemplate/src/__pycache__/Food.cpython-37.pyc and b/BlankProjectTemplate/src/__pycache__/Food.cpython-37.pyc differ
diff --git a/BlankProjectTemplate/src/__pycache__/Interface.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/Interface.cpython-37.pyc
index 8ac82ceaaaff8c2f9af45844d30705cb9cd3d8bc..9a4a1cd6e2e72b10a4a497a6d54a3e051f42a7ce 100644
Binary files a/BlankProjectTemplate/src/__pycache__/Interface.cpython-37.pyc and b/BlankProjectTemplate/src/__pycache__/Interface.cpython-37.pyc differ
diff --git a/BlankProjectTemplate/src/__pycache__/Snake.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/Snake.cpython-37.pyc
index d1439d6a6f3d19a239cca60542761a16a4361e2c..64ed5e1ffc62e81f7a69696008571de8734360c2 100644
Binary files a/BlankProjectTemplate/src/__pycache__/Snake.cpython-37.pyc and b/BlankProjectTemplate/src/__pycache__/Snake.cpython-37.pyc differ
diff --git a/BlankProjectTemplate/src/__pycache__/init.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/init.cpython-37.pyc
index cce923f0e289ed3fb9a8cb0638c6cb526bac5e44..5ef93ec9897c680e94b72d19d335652862a2b13f 100644
Binary files a/BlankProjectTemplate/src/__pycache__/init.cpython-37.pyc and b/BlankProjectTemplate/src/__pycache__/init.cpython-37.pyc differ
diff --git a/BlankProjectTemplate/src/__pycache__/theme.cpython-37.pyc b/BlankProjectTemplate/src/__pycache__/theme.cpython-37.pyc
index 51083db02c0797c2a6e9d41e244f0793e98ada13..a2134b3fef5b6f94f441b0ef00f771775de7f4c0 100644
Binary files a/BlankProjectTemplate/src/__pycache__/theme.cpython-37.pyc and b/BlankProjectTemplate/src/__pycache__/theme.cpython-37.pyc differ
diff --git a/BlankProjectTemplate/src/snake_image.png b/BlankProjectTemplate/src/snake_image.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf3f0abe920c8a70740cb103d1b0fa767f0f4a12
Binary files /dev/null and b/BlankProjectTemplate/src/snake_image.png differ