diff --git a/MyPortfolio/data.json b/MyPortfolio/data.json
index ee0811875f2e614666fd107f6535b594eebda57a..11ef2f0e37c15a07c9e22e9072c32c4e846aaa7d 100644
--- a/MyPortfolio/data.json
+++ b/MyPortfolio/data.json
@@ -1,7 +1,7 @@
 {
     "projects": [
         {
-            "title": "project_title",
+            "title": "project_example",
             "project_id": 0,
             "techniques": "techniques",
             "desc": "description",
@@ -20,6 +20,18 @@
             "desc": "It's great!",
             "img_url": "logo.jpg",
             "url": "https://www.github.com/"
+        },
+        {
+            "title": "MySecondProject",
+            "project_id": 2,
+            "techniques": [
+                "python",
+                "html",
+                "css"
+            ],
+            "desc": "This is a python project!",
+            "img_url": "logo.png",
+            "url": "https://www.github.com"
         }
     ]
-}
\ No newline at end of file
+}
diff --git a/MyPortfolio/data_layer.py b/MyPortfolio/data_layer.py
index ced0e9ca355df8852297950dc0d29228ec952d99..0dd4398efaf67bf5ac6b420ef008b6888d71df1d 100644
--- a/MyPortfolio/data_layer.py
+++ b/MyPortfolio/data_layer.py
@@ -27,26 +27,33 @@ def save(data):
 
     file.close()
 
+    # Update unique techniques if user added new ones to the file.
+    get_techniques_stats(data)
+
+    # Reload data
+    load()
     
 
-def get_project(data, id):
-    pass
 
+# Get project by ID
+def get_project(data, id):
+    for n in range(0, get_project_count(data)):
+        if data["projects"][n]["project_id"] == id:
+            return data["projects"][n]
 
 
+# Get project count
 def get_project_count(data):
     return len(data["projects"])
 
 
-
+# Get techniques from project by ID
 def get_techniques(data, id):
     
-    for n in range(0, get_project_count(data)):
-        if data["projects"][n]["project_id"] == id:
-            return (data["projects"][n]["techniques"])
-
+    return get_project(data,id)['techniques']
 
 
+# Gets all unique techniques from all projects ! COULD USE SOME FILTERING !
 def get_techniques_stats(data):
     
     techniques = []
@@ -110,10 +117,38 @@ def new_project(data):
         pass
     
 
+def list_projects(data):
+    cls()
+    for project in data['projects']:
+        pprint.pp(project)
+        print("\n")
 
 
-def edit_project(data):
-    pass
+
+def edit_project(data, id):
+    
+    while True:
+        if id > get_project_count(data) or id < 0:
+            print("Project ID doesn't exist.\n")
+            id = int(input("Project_ID to edit: "))
+        else:
+
+            cls()
+            
+            project = get_project(data, id)
+            project.pop('project_id') # Project ID shouldn't be changed 
+
+            print(f"Editing project: {project['title']}\n")
+            
+            pprint.pp(project)
+            print("")
+
+            for field in enumerate(project):
+                print(f"{field[0]}: {field[1]}")
+            
+            input("\nField to edit: ")
+            
+            
 
 
 
@@ -124,7 +159,7 @@ def delete_project(data):
 
 def menu(data):
 
-    menu_items = ["Add new project", "Edit existing project", "Delete project", "Quit"]
+    menu_items = ["Add new project", "List projects", "Edit existing project", "Delete project", "Quit"]
     menu_index = 0
 
     while True:
@@ -132,11 +167,11 @@ def menu(data):
         cls()
         
         titular = r"""
-  ____                   _      __           _   _         
- |  _ \    ___    _ __  | |_   / _|   ___   | | (_)   ___  
- | |_) |  / _ \  | '__| | __| | |_   / _ \  | | | |  / _ \ 
- |  __/  | (_) | | |    | |_  |  _| | (_) | | | | | | (_) |
- |_|      \___/  |_|     \__| |_|    \___/  |_| |_|  \___/
+  ____                   _      __           _       _         
+ |  _ \    ___    _ __  | |_   / _|   ___   | |     (_)   ___  
+ | |_) |  / _ \  | '__| | __| | |_   / _ \  | |     | |  / _ \ 
+ |  __/  | (_) | | |    | |_  |  _| | (_) | | |  _  | | | (_) |
+ |_|      \___/  |_|     \__| |_|    \___/  |_| (_) |_|  \___/
     """
 
         print(titular)
@@ -149,12 +184,15 @@ def menu(data):
 
             if option == 1:
                 new_project(data)
-                print("1")
             elif option == 2:
-                edit_project(data)
+                list_projects(data)
+                input()
             elif option == 3:
-                delete_project(data)
+                list_projects(data)
+                edit_project(data, int(input("Project_ID to edit: ")))
             elif option == 4:
+                delete_project(data, int(input("Project_ID to delete: ")))
+            elif option == 5:
                 cls()
                 break
         except: