diff --git a/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/FlaskBaseApp.py b/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/FlaskBaseApp.py
index ea87c4a3f6bb6a36cbf50b638a17d05e18a1d811..d93ae3d80bfc7121fac4044069daa121d142aa32 100644
--- a/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/FlaskBaseApp.py
+++ b/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/FlaskBaseApp.py
@@ -9,6 +9,8 @@ from flask import Flask, send_from_directory
 from flask import jsonify
 from gevent.pywsgi import WSGIServer
 
+from TheCodeLabs_FlaskUtils.menu.AbstractMenuService import AbstractMenuService
+
 
 class FlaskBaseApp(ABC):
     def __init__(self, appName: str,
@@ -17,12 +19,14 @@ class FlaskBaseApp(ABC):
                  versionPath='version.json',
                  settingsPath='../settings.json',
                  serveFavicon=True,
-                 serveRobotsTxt=False):
+                 serveRobotsTxt=False,
+                 menuService: AbstractMenuService = None):
         self._appName = appName
         self._rootDir = rootDir
         self._logger = logger
         self._serveFavicon = serveFavicon
         self._serveRobotsTxt = serveRobotsTxt
+        self._menuService = menuService
 
         self._version = self.__parse_version(versionPath)
         self._settings = self.__parse_settings(settingsPath)
@@ -45,6 +49,9 @@ class FlaskBaseApp(ABC):
         app = self._create_flask_app()
         app.secret_key = self._serverSettings['secret']
 
+        if self._menuService is not None:
+            app.jinja_env.globals.update(menu_items=self._menuService.get_menu_items())
+
         self._register_default_blueprints(app)
         self._register_blueprints(app)
         return app
diff --git a/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/menu/AbstractMenuService.py b/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/menu/AbstractMenuService.py
new file mode 100644
index 0000000000000000000000000000000000000000..b995341b6c5787972394946964823e79e6d5c42d
--- /dev/null
+++ b/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/menu/AbstractMenuService.py
@@ -0,0 +1,12 @@
+import abc
+from abc import ABC
+from typing import List
+
+from TheCodeLabs_FlaskUtils.menu.MenuItem import MenuItem
+
+
+class AbstractMenuService(ABC):
+
+    @abc.abstractmethod
+    def get_menu_items(self) -> List[MenuItem]:
+        pass
diff --git a/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/menu/MenuItem.py b/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/menu/MenuItem.py
new file mode 100644
index 0000000000000000000000000000000000000000..9cfc51bb5cd9cbaa85b6b6bf81868d7eca3f027e
--- /dev/null
+++ b/TheCodeLabs_FlaskUtils/TheCodeLabs_FlaskUtils/menu/MenuItem.py
@@ -0,0 +1,39 @@
+import uuid
+
+from flask import request
+from flask import url_for
+
+
+class MenuItem:
+    def __init__(self, endpoint: str or None, name: str, menu_items=None, secure: bool = False):
+        if menu_items is None:
+            menu_items = []
+        self._endpoint = endpoint
+        self._name = name
+        self._menu_items = menu_items
+        self._id = uuid.uuid1()
+        self._secure = secure
+
+    def id(self):
+        return self._id
+
+    def name(self):
+        return self._name
+
+    def endpoint(self):
+        return self._endpoint
+
+    def menu_items(self):
+        return self._menu_items
+
+    def is_active(self):
+        if request.endpoint == self._endpoint:
+            return True
+
+        try:
+            return str.startswith(url_for(request.endpoint), url_for(self._endpoint))
+        except:
+            return False
+
+    def is_secure(self):
+        return self._secure
diff --git a/TheCodeLabs_FlaskUtils/setup.py b/TheCodeLabs_FlaskUtils/setup.py
index dc51c72892142ef54fb57df00bb1bc22c4ff24f4..552a5d0efd2955c1f8f5e817a3ff7fbae8969071 100644
--- a/TheCodeLabs_FlaskUtils/setup.py
+++ b/TheCodeLabs_FlaskUtils/setup.py
@@ -2,8 +2,12 @@ from setuptools import setup
 
 setup(
     name='TheCodeLabs-FlaskUtils',
-    packages=['TheCodeLabs_FlaskUtils', 'TheCodeLabs_FlaskUtils.auth'],
-    version='1.2.1',
+    packages=[
+        'TheCodeLabs_FlaskUtils',
+        'TheCodeLabs_FlaskUtils.auth',
+        'TheCodeLabs_FlaskUtils.menu'
+    ],
+    version='1.2.2',
     license='MIT',
     description='Useful python classes',
     author='TheCodeLabs',