diff --git a/UML/TastyPages_Use-case.drawio b/UML/TastyPages_Use-case.drawio
index d19ef004ded831addcf7489a45e7596fcf55c749..0fe58f94e7d145c6cc880f5a8308dab6df7ea5a8 100644
--- a/UML/TastyPages_Use-case.drawio
+++ b/UML/TastyPages_Use-case.drawio
@@ -1,4 +1,4 @@
-<mxfile host="app.diagrams.net" modified="2023-04-06T12:22:46.892Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" etag="h6u8k4RW0PcJCYIA_9nc" version="21.1.4" type="device" pages="2">
+<mxfile host="app.diagrams.net" modified="2023-04-19T11:05:18.944Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" etag="TfVF3upebSLqdH9pMsNr" version="21.1.7" type="device" pages="2">
   <diagram name="Seite-1" id="guNTSU0fiwR1g74g93dq">
     <mxGraphModel dx="1434" dy="1623" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
       <root>
@@ -311,12 +311,12 @@
     </mxGraphModel>
   </diagram>
   <diagram id="IOxpQtQOinXd_60UH0zV" name="Seite-2">
-    <mxGraphModel dx="1852" dy="1179" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
+    <mxGraphModel dx="2416" dy="1519" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
       <root>
         <mxCell id="0" />
         <mxCell id="1" parent="0" />
-        <mxCell id="4rBL8TMRcDE2g0Xyakx7-3" value="package : recipes" style="swimlane;whiteSpace=wrap;html=1;rounded=0;" parent="1" vertex="1">
-          <mxGeometry x="-20" y="44" width="1170" height="740" as="geometry" />
+        <mxCell id="4rBL8TMRcDE2g0Xyakx7-3" value="7" style="swimlane;whiteSpace=wrap;html=1;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="-20" y="43" width="1170" height="740" as="geometry" />
         </mxCell>
         <mxCell id="khY43H2GbW4oralui55t-5" value="RecipeEditor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
           <mxGeometry x="340" y="126" width="200" height="116" as="geometry" />
@@ -327,7 +327,7 @@
         <mxCell id="I4bFckmwjJYNS_oseT-e-1" value="+ RecipeEditor(Recipe r) : Constructor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="khY43H2GbW4oralui55t-5" vertex="1">
           <mxGeometry y="52" width="200" height="38" as="geometry" />
         </mxCell>
-        <mxCell id="ZsNRWflmDDHaKi8fymGh-1" value="+ get() : Recipe" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="khY43H2GbW4oralui55t-5">
+        <mxCell id="ZsNRWflmDDHaKi8fymGh-1" value="+ get() : Recipe" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="khY43H2GbW4oralui55t-5" vertex="1">
           <mxGeometry y="90" width="200" height="26" as="geometry" />
         </mxCell>
         <mxCell id="khY43H2GbW4oralui55t-9" value="Singleton : RecipeManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
@@ -373,16 +373,19 @@
           <mxGeometry y="126" width="300" height="28" as="geometry" />
         </mxCell>
         <mxCell id="4db8lyx7makHAff3xmPV-1" value="Category" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="670" y="216" width="245" height="100" as="geometry" />
+          <mxGeometry x="625" y="206" width="245" height="126" as="geometry" />
         </mxCell>
-        <mxCell id="4db8lyx7makHAff3xmPV-2" value="+ field: type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4db8lyx7makHAff3xmPV-1" vertex="1">
+        <mxCell id="4db8lyx7makHAff3xmPV-2" value="- name : String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4db8lyx7makHAff3xmPV-1" vertex="1">
           <mxGeometry y="26" width="245" height="26" as="geometry" />
         </mxCell>
+        <mxCell id="VXFt1rTyLLwseOzf8AC8-2" value="- colorCode : Integer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="4db8lyx7makHAff3xmPV-1">
+          <mxGeometry y="52" width="245" height="26" as="geometry" />
+        </mxCell>
         <mxCell id="4db8lyx7makHAff3xmPV-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="4db8lyx7makHAff3xmPV-1" vertex="1">
-          <mxGeometry y="52" width="245" height="8" as="geometry" />
+          <mxGeometry y="78" width="245" height="8" as="geometry" />
         </mxCell>
         <mxCell id="4db8lyx7makHAff3xmPV-4" value="overrides:&lt;br&gt;+ equals(Object o) : boolean" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4db8lyx7makHAff3xmPV-1" vertex="1">
-          <mxGeometry y="60" width="245" height="40" as="geometry" />
+          <mxGeometry y="86" width="245" height="40" as="geometry" />
         </mxCell>
         <mxCell id="4db8lyx7makHAff3xmPV-5" value="Singleton : Categories" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
           <mxGeometry x="585" y="40" width="245" height="112" as="geometry" />
@@ -399,20 +402,20 @@
         <mxCell id="BmttCFs_K1xAuYzUHSLz-1" value="+ getAllCategories() : Set&amp;lt;Category&amp;gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4db8lyx7makHAff3xmPV-5" vertex="1">
           <mxGeometry y="86" width="245" height="26" as="geometry" />
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.633;entryY=0.998;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="90y9bFiBt-Dw9IB2Oaka-1" target="ev62EXm1IyDULqRkRese-6" edge="1">
+        <mxCell id="ev62EXm1IyDULqRkRese-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.629;entryY=1.055;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="90y9bFiBt-Dw9IB2Oaka-1" target="VXFt1rTyLLwseOzf8AC8-1" edge="1">
           <mxGeometry relative="1" as="geometry">
             <Array as="points">
-              <mxPoint x="500" y="455" />
+              <mxPoint x="500" y="395" />
             </Array>
           </mxGeometry>
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-36" value="extends" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-35" vertex="1" connectable="0">
+        <mxCell id="ev62EXm1IyDULqRkRese-36" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-35" vertex="1" connectable="0">
           <mxGeometry x="0.5375" y="2" relative="1" as="geometry">
-            <mxPoint as="offset" />
+            <mxPoint y="36" as="offset" />
           </mxGeometry>
         </mxCell>
-        <mxCell id="90y9bFiBt-Dw9IB2Oaka-1" value="Recipe &lt;span style=&quot;font-weight: normal;&quot;&gt;extends RecipeComponent&lt;/span&gt;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="315" y="502" width="270" height="206" as="geometry">
+        <mxCell id="90y9bFiBt-Dw9IB2Oaka-1" value="Recipe&amp;nbsp;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="315" y="502" width="270" height="182" as="geometry">
             <mxRectangle x="20" y="150" width="80" height="30" as="alternateBounds" />
           </mxGeometry>
         </mxCell>
@@ -431,27 +434,25 @@
         <mxCell id="BmttCFs_K1xAuYzUHSLz-4" value="- preparationTimeMins : Integer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="90y9bFiBt-Dw9IB2Oaka-1" vertex="1">
           <mxGeometry y="134" width="270" height="24" as="geometry" />
         </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-37" value="- categories : Set&amp;lt;Category&amp;gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="90y9bFiBt-Dw9IB2Oaka-1" vertex="1">
+        <mxCell id="ev62EXm1IyDULqRkRese-1" value="- created : LocalDateTime" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="90y9bFiBt-Dw9IB2Oaka-1" vertex="1">
           <mxGeometry y="158" width="270" height="24" as="geometry" />
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-1" value="- created : Date" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="90y9bFiBt-Dw9IB2Oaka-1" vertex="1">
-          <mxGeometry y="182" width="270" height="24" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.261;entryY=1.102;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4LD2Q_2ablrLRUKtAQnm-8" target="ev62EXm1IyDULqRkRese-6" edge="1">
+        <mxCell id="ev62EXm1IyDULqRkRese-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.258;entryY=1.07;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4LD2Q_2ablrLRUKtAQnm-8" target="VXFt1rTyLLwseOzf8AC8-1" edge="1">
           <mxGeometry relative="1" as="geometry">
             <mxPoint x="430" y="416" as="targetPoint" />
             <Array as="points">
               <mxPoint x="290" y="456" />
               <mxPoint x="430" y="456" />
+              <mxPoint x="430" y="396" />
             </Array>
           </mxGeometry>
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-34" value="extends" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-33" vertex="1" connectable="0">
+        <mxCell id="ev62EXm1IyDULqRkRese-34" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-33" vertex="1" connectable="0">
           <mxGeometry x="-0.5103" relative="1" as="geometry">
             <mxPoint x="62" y="-6" as="offset" />
           </mxGeometry>
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-8" value="Ingredient&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;extends RecipeComponent&lt;/span&gt;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-8" value="Ingredient" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
           <mxGeometry x="20" y="446" width="270" height="52" as="geometry" />
         </mxCell>
         <mxCell id="BmttCFs_K1xAuYzUHSLz-25" value="- unit : Measurement" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-8" vertex="1">
@@ -505,15 +506,18 @@
         <mxCell id="4LD2Q_2ablrLRUKtAQnm-15" value="+ getNutritionForRecipe (Recipe recipe) : NutritionTable" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-12" vertex="1">
           <mxGeometry y="60" width="260" height="40" as="geometry" />
         </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-17" value="&amp;lt;&amp;lt;abstract&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;RecipeComponent&lt;/b&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="380" y="331" width="190" height="78" as="geometry" />
+        <mxCell id="BmttCFs_K1xAuYzUHSLz-17" value="&amp;lt;&amp;lt;interface&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;RecipeComponent&lt;/b&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="380" y="290" width="190" height="104" as="geometry" />
         </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-18" value="- nutritionTable : NutritionTable" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="BmttCFs_K1xAuYzUHSLz-17" vertex="1">
+        <mxCell id="BmttCFs_K1xAuYzUHSLz-18" value="+ getName() : String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="BmttCFs_K1xAuYzUHSLz-17" vertex="1">
           <mxGeometry y="26" width="190" height="26" as="geometry" />
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-6" value="- name : String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="BmttCFs_K1xAuYzUHSLz-17" vertex="1">
+        <mxCell id="ev62EXm1IyDULqRkRese-6" value="+ getNutritionTable() : NutritionTable" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontSize=11;" parent="BmttCFs_K1xAuYzUHSLz-17" vertex="1">
           <mxGeometry y="52" width="190" height="26" as="geometry" />
         </mxCell>
+        <mxCell id="VXFt1rTyLLwseOzf8AC8-1" value="+ getID() : Integer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontSize=11;" vertex="1" parent="BmttCFs_K1xAuYzUHSLz-17">
+          <mxGeometry y="78" width="190" height="26" as="geometry" />
+        </mxCell>
         <mxCell id="ev62EXm1IyDULqRkRese-11" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.442;exitY=0.985;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.611;entryY=-0.021;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="BmttCFs_K1xAuYzUHSLz-25" target="WwHfsR9ecwNkWHZ6sJ4B-4" edge="1">
           <mxGeometry width="160" relative="1" as="geometry">
             <mxPoint x="138.17999999999984" y="486.004" as="sourcePoint" />
@@ -553,6 +557,10 @@
           <mxGeometry x="-1" y="3" relative="1" as="geometry">
             <mxPoint x="540" y="376" as="sourcePoint" />
             <mxPoint x="700" y="376" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="620" y="329" />
+              <mxPoint x="620" y="403" />
+            </Array>
           </mxGeometry>
         </mxCell>
         <mxCell id="qvnAXoucquyjZ7kPEuXb-5" value="Singleton : IngredientList" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
@@ -579,7 +587,7 @@
             <mxPoint x="80" y="426" as="targetPoint" />
           </mxGeometry>
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-40" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.005;entryY=0.355;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="lNXn1_JIS0mlgrxrveIr-12" edge="1" target="I4bFckmwjJYNS_oseT-e-1">
+        <mxCell id="ev62EXm1IyDULqRkRese-40" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.005;entryY=0.355;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="lNXn1_JIS0mlgrxrveIr-12" target="I4bFckmwjJYNS_oseT-e-1" edge="1">
           <mxGeometry x="-1" y="3" relative="1" as="geometry">
             <mxPoint x="230" y="186" as="sourcePoint" />
             <mxPoint x="400" y="116" as="targetPoint" />
@@ -593,7 +601,7 @@
           </mxGeometry>
         </mxCell>
         <mxCell id="XnVSaR7xRqF0c78tSIC_-1" value="package : shoppingList" style="swimlane;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="1280" y="-280" width="300" height="220" as="geometry" />
+          <mxGeometry x="1280" y="-350" width="300" height="290" as="geometry" />
         </mxCell>
         <mxCell id="XnVSaR7xRqF0c78tSIC_-2" value="Singleton :ShoppingList" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="XnVSaR7xRqF0c78tSIC_-1" vertex="1">
           <mxGeometry x="30" y="40" width="240" height="164" as="geometry" />
diff --git a/src/main/java/mi/hdm/App.java b/src/main/java/mi/hdm/App.java
new file mode 100644
index 0000000000000000000000000000000000000000..c348cccb855bd4bebe3f695b3870844741a7819e
--- /dev/null
+++ b/src/main/java/mi/hdm/App.java
@@ -0,0 +1,9 @@
+package mi.hdm;
+
+public class App {
+    public static void main(String[] args) {
+        System.out.println("Starting App");
+    }
+
+    public void save() {}
+}
diff --git a/src/main/java/mi/hdm/FileManager.java b/src/main/java/mi/hdm/FileManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..3367bc51e497808f070613c146c5afd36fa7fb62
--- /dev/null
+++ b/src/main/java/mi/hdm/FileManager.java
@@ -0,0 +1,13 @@
+package mi.hdm;
+
+public class FileManager {
+    private static final FileManager fileManager = new FileManager();
+
+    public static FileManager getInstance() {
+        return fileManager;
+    }
+
+    public void serializeToFile(App app) {}
+
+    public App deserializeFromFile(String filepath) { return null; }
+}
diff --git a/src/main/java/mi/hdm/mealPlan/MealPlan.java b/src/main/java/mi/hdm/mealPlan/MealPlan.java
new file mode 100644
index 0000000000000000000000000000000000000000..9cea4caffcf8dee5076510195f2ba1ca8b0cf5bd
--- /dev/null
+++ b/src/main/java/mi/hdm/mealPlan/MealPlan.java
@@ -0,0 +1,17 @@
+package mi.hdm.mealPlan;
+
+public class MealPlan {
+    private static final MealPlan mealPlan = new MealPlan();
+
+    public static MealPlan getInstance() {
+        return mealPlan;
+    }
+
+    public void addRecipeTomMealPlan(Recipe recipe, int day) {}
+
+    public void clear(int day) {}
+
+    public void clear() {}
+
+    public void get(int day) {}
+}
diff --git a/src/main/java/mi/hdm/mealPlan/NutritionCalculator.java b/src/main/java/mi/hdm/mealPlan/NutritionCalculator.java
new file mode 100644
index 0000000000000000000000000000000000000000..09d2ae494b4d497b4a58b2b779159ae298b81e40
--- /dev/null
+++ b/src/main/java/mi/hdm/mealPlan/NutritionCalculator.java
@@ -0,0 +1,4 @@
+package mi.hdm.mealPlan;
+
+public class NutritionCalculator {
+}
diff --git a/src/main/java/mi/hdm/shoppingList/ShoppingList.java b/src/main/java/mi/hdm/shoppingList/ShoppingList.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1e3c5fc41fb8d74b0ad7d81ea71f1c0fbadef86
--- /dev/null
+++ b/src/main/java/mi/hdm/shoppingList/ShoppingList.java
@@ -0,0 +1,28 @@
+package mi.hdm.shoppingList;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ShoppingList {
+    private final Map<Ingredient, Boolean> list;
+
+    private static final ShoppingList shoppingList = new ShoppingList();
+
+    private ShoppingList() {
+        list = new HashMap<Ingredient, Boolean>();
+    }
+
+    public static ShoppingList getInstance() {
+        return list;
+    }
+
+    public void clear() {}
+
+    public void markDone(int id) {}
+
+    public void markUndone(int id) {}
+
+    public Map<Ingredient, Boolean> getList() {
+        return list;
+    }
+}