diff --git a/UML/TastyPages_Use-case_Class_Diagram5.drawio b/UML/TastyPages_Use-case_Class_Diagram5.drawio
deleted file mode 100644
index edb6d92f46527c8149cf0f352a940bc5e3e013ca..0000000000000000000000000000000000000000
--- a/UML/TastyPages_Use-case_Class_Diagram5.drawio
+++ /dev/null
@@ -1,876 +0,0 @@
-<mxfile host="app.diagrams.net" modified="2023-06-18T19:01:49.418Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0" etag="xylNdJGvrHFnfPCv1Knz" version="21.4.0" type="device" pages="2">
-  <diagram name="Seite-1" id="guNTSU0fiwR1g74g93dq">
-    <mxGraphModel dx="1890" dy="2275" 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="t6KV452nRaxTD-9MS5Kb-28" value="&lt;div&gt;&lt;b&gt;&amp;nbsp; Tasty Pages&lt;br&gt;&lt;/b&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" vertex="1" parent="1">
-          <mxGeometry x="150" y="-210" width="750" height="940" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-1" value="User" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
-          <mxGeometry x="30" y="420" width="30" height="60" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-17" value="add recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="265" y="-105.25" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-18" value="select components" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="535" y="-144" width="140" height="20" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-24" value="Name the recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="535" y="-184" width="140" height="20" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-29" value="add preparpation steps" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="545" y="-105.25" width="140" height="20" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-32" value="select categories" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="545" y="-59" width="140" height="20" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-34" value="add picture" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="545" y="-22.75" width="140" height="22.5" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-37" value="delete recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="265" y="-65.25" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-40" value="edit recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="265" y="-25.25" width="120" height="25" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="4oh4sVMnw9r_FDRqXWCS-43" target="4oh4sVMnw9r_FDRqXWCS-53" edge="1">
-          <mxGeometry relative="1" as="geometry">
-            <Array as="points">
-              <mxPoint x="310" y="190" />
-              <mxPoint x="780" y="190" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-43" value="browse recipes" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="250" y="100" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-44" value="full text search" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="490" y="70" width="120" height="20" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-46" value="choose categories" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="490" y="105" width="120" height="20" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-49" value="show favorites" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="490" y="140" width="120" height="20" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-53" value="Display recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="720" y="80" width="120" height="50" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-64" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;" parent="1" source="4oh4sVMnw9r_FDRqXWCS-60" target="4oh4sVMnw9r_FDRqXWCS-63" edge="1">
-          <mxGeometry relative="1" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-49" value="&amp;lt;&amp;lt;includes&amp;gt;&amp;gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="4oh4sVMnw9r_FDRqXWCS-64">
-          <mxGeometry x="0.0848" y="1" relative="1" as="geometry">
-            <mxPoint as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-60" value="add ingredient" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="240" y="370" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-61" value="search ingredient" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="240" y="414" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-62" value="delete ingredient" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="240" y="460" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-63" value="set ingredient name" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="510" y="370" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-66" value="set nutrition values" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="510" y="414" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-68" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;choose measurement type&lt;/font&gt;" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="500" y="330" width="140" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-71" value="add recipe to shopping list" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="495" y="520" width="110" height="50" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-72" value="remove recipe from shopping list" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="490" y="580" width="120" height="50" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-74" value="add to meal plan" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="240" y="605" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4oh4sVMnw9r_FDRqXWCS-75" value="&lt;div&gt;remove from&lt;/div&gt;&lt;div&gt;&amp;nbsp;meal plan&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="240" y="655" width="120" height="40" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-7" value="other preexisting recipies" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="760" y="-153.37" width="119.77" height="38.75" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-8" value="Ingredients" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="760" y="-102.75" width="120" height="27.5" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-9" value="delete category" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="320" y="293" width="120" height="33.44" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-10" value="create category" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="320" y="257.69000000000005" width="120" height="28.75" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-11" value="Name cagegory" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="520" y="230" width="120" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-12" value="select color for categroy" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="520" y="269.56999999999994" width="120" height="45" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-15" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.822;exitY=0.121;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="t6KV452nRaxTD-9MS5Kb-10" target="t6KV452nRaxTD-9MS5Kb-11">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="335" y="141.26" as="sourcePoint" />
-            <mxPoint x="370" y="112.5" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.821;exitY=0.892;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="t6KV452nRaxTD-9MS5Kb-10" target="t6KV452nRaxTD-9MS5Kb-12">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="545" y="178.13" as="sourcePoint" />
-            <mxPoint x="595" y="128.13" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-17" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-24">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="370" y="-170" as="sourcePoint" />
-            <mxPoint x="420" y="-220" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-18" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-18">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="620" y="-98.75" as="sourcePoint" />
-            <mxPoint x="670" y="-148.75" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-19" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-29">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="490" y="-110" as="sourcePoint" />
-            <mxPoint x="540" y="-160" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-47" value="&amp;lt;&amp;lt;includes&amp;gt;&amp;gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t6KV452nRaxTD-9MS5Kb-19">
-          <mxGeometry x="-0.1595" y="-1" relative="1" as="geometry">
-            <mxPoint as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-20" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-32">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="490" y="-110" as="sourcePoint" />
-            <mxPoint x="540" y="-160" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-21" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-34">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="490" y="-110" as="sourcePoint" />
-            <mxPoint x="540" y="-160" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-22" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-18" target="t6KV452nRaxTD-9MS5Kb-7">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="490" y="-110" as="sourcePoint" />
-            <mxPoint x="540" y="-160" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-23" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-18" target="t6KV452nRaxTD-9MS5Kb-8">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="490" y="-110" as="sourcePoint" />
-            <mxPoint x="540" y="-160" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-64" value="&amp;lt;&amp;lt;includes&amp;gt;&amp;gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t6KV452nRaxTD-9MS5Kb-23">
-          <mxGeometry x="-0.2368" y="1" relative="1" as="geometry">
-            <mxPoint as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-31" value="Ingredient Database" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
-          <mxGeometry x="1020" y="-114.62" width="30" height="60" as="geometry" />
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-33" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="t6KV452nRaxTD-9MS5Kb-31" target="t6KV452nRaxTD-9MS5Kb-8">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="1010" y="454" as="sourcePoint" />
-            <mxPoint x="1060" y="404" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-36" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-37">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="60" y="410" as="sourcePoint" />
-            <mxPoint x="100" y="140" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="60" y="410" />
-              <mxPoint x="60" y="-95" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-40" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-43">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="70" y="420" as="sourcePoint" />
-            <mxPoint x="150" y="204.69" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="120" y="420" />
-              <mxPoint x="120" y="115" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-41" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="t6KV452nRaxTD-9MS5Kb-10">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="80" y="430" as="sourcePoint" />
-            <mxPoint x="290" y="194.07" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="170" y="431" />
-              <mxPoint x="170" y="272" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-42" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="t6KV452nRaxTD-9MS5Kb-9">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="220" y="290" as="sourcePoint" />
-            <mxPoint x="290" y="140" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="220" y="310" />
-              <mxPoint x="320" y="310" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-44" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-43" target="4oh4sVMnw9r_FDRqXWCS-46">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="430" y="100" as="sourcePoint" />
-            <mxPoint x="480" y="50" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-63" value="&amp;lt;&amp;lt;includes&amp;gt;&amp;gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t6KV452nRaxTD-9MS5Kb-44">
-          <mxGeometry x="0.1873" y="-1" relative="1" as="geometry">
-            <mxPoint as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-45" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-44" target="4oh4sVMnw9r_FDRqXWCS-49">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="420" y="180" as="sourcePoint" />
-            <mxPoint x="470" y="130" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="460" y="80" />
-              <mxPoint x="460" y="150" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-48" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-66" target="4oh4sVMnw9r_FDRqXWCS-68">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="430" y="410" as="sourcePoint" />
-            <mxPoint x="480" y="360" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="460" y="429" />
-              <mxPoint x="460" y="345" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-50" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-61">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="80" y="440" as="sourcePoint" />
-            <mxPoint x="270" y="380" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-51" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-40">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="225" y="44.75" as="sourcePoint" />
-            <mxPoint x="275" y="-5.25" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="215" y="-90.25" />
-              <mxPoint x="215" y="-13.25" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-52" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-62" target="4oh4sVMnw9r_FDRqXWCS-60">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="200" y="530" as="sourcePoint" />
-            <mxPoint x="250" y="480" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="190" y="475" />
-              <mxPoint x="190" y="385" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-55" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-71">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="70" y="460" as="sourcePoint" />
-            <mxPoint x="370" y="510" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="70" y="545" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-56" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-72">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="390" y="550" as="sourcePoint" />
-            <mxPoint x="635" y="490" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="390" y="605" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-61" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-74">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="40" y="520" as="sourcePoint" />
-            <mxPoint x="310" y="620" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="40" y="620" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="t6KV452nRaxTD-9MS5Kb-62" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-75">
-          <mxGeometry width="50" height="50" relative="1" as="geometry">
-            <mxPoint x="90" y="600" as="sourcePoint" />
-            <mxPoint x="125" y="690" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="90" y="675" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-      </root>
-    </mxGraphModel>
-  </diagram>
-  <diagram id="IOxpQtQOinXd_60UH0zV" name="Seite-2">
-    <mxGraphModel dx="3057" dy="2287" 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 : recipe" style="swimlane;whiteSpace=wrap;html=1;rounded=0;" parent="1" vertex="1">
-          <mxGeometry x="-180" y="-160" width="1170" height="990" 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="40" width="200" height="116" as="geometry" />
-        </mxCell>
-        <mxCell id="khY43H2GbW4oralui55t-8" value="+ RecipeEditor() : 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="26" width="200" height="26" as="geometry" />
-        </mxCell>
-        <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;" 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">
-          <mxGeometry x="20" y="40" width="220" height="190" as="geometry" />
-        </mxCell>
-        <mxCell id="khY43H2GbW4oralui55t-10" value="- recipes : List&amp;lt;Recipe&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="khY43H2GbW4oralui55t-9" vertex="1">
-          <mxGeometry y="26" width="220" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-38" value="- categories : Categories" 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-9" vertex="1">
-          <mxGeometry y="52" width="220" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="qvnAXoucquyjZ7kPEuXb-9" value="- ingredients : IngredientList" 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-9" vertex="1">
-          <mxGeometry y="78" width="220" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="khY43H2GbW4oralui55t-11" 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="khY43H2GbW4oralui55t-9" vertex="1">
-          <mxGeometry y="104" width="220" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="khY43H2GbW4oralui55t-12" value="+ addRecipe() : void" 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-9" vertex="1">
-          <mxGeometry y="112" width="220" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-12" value="+ deleteRecipe (int i) : void" 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-9" vertex="1">
-          <mxGeometry y="138" width="220" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-13" value="+ editRecipe (int i) : void" 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-9" vertex="1">
-          <mxGeometry y="164" width="220" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="1PDsnecl4zy3zphxMVey-1" value="RecipeSearch" 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="860" y="40" width="300" height="154" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-26" value="- recipesToSearch : List&amp;lt;Recipe&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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <mxGeometry y="26" width="300" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-27" 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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <mxGeometry y="52" width="300" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-28" value="&lt;i&gt;Constructor:&lt;/i&gt;&lt;br&gt;+ RecipeSearch(List&amp;lt;Recipe&amp;gt; recipesToSearch)&amp;nbsp;" 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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <mxGeometry y="60" width="300" height="40" as="geometry" />
-        </mxCell>
-        <mxCell id="1PDsnecl4zy3zphxMVey-4" value="+ searchByQuery(String query) : List&amp;lt;Recipe&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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <mxGeometry y="100" width="300" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-3" value="+ searchByCategory(List&amp;lt;Category&amp;gt;) : List&amp;lt;Recipe&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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <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="580" y="47" width="245" height="230" as="geometry" />
-        </mxCell>
-        <mxCell id="4db8lyx7makHAff3xmPV-2" value="&lt;div&gt;- code : Integer&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- colourCode : String &lt;br&gt;&lt;/div&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-1" vertex="1">
-          <mxGeometry y="26" width="245" height="54" 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="80" width="245" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="4db8lyx7makHAff3xmPV-4" value="&lt;div&gt;+ Category(String name, int colourName)&lt;/div&gt;&lt;div&gt;+ Category(String name, String colourName, int code)&lt;/div&gt;&lt;div&gt;+ getColourCode() : String&lt;/div&gt;&lt;div&gt;+ getName() : String&amp;nbsp;&lt;/div&gt;&lt;div&gt;+ getCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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-1" vertex="1">
-          <mxGeometry y="88" width="245" height="142" as="geometry" />
-        </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-70" target="BmttCFs_K1xAuYzUHSLz-17" edge="1">
-          <mxGeometry relative="1" as="geometry">
-            <Array as="points">
-              <mxPoint x="155" y="640" />
-            </Array>
-            <mxPoint x="155" y="670" as="sourcePoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-8" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="VXFt1rTyLLwseOzf8AC8-6" vertex="1" connectable="0">
-          <mxGeometry x="0.5309" y="1" relative="1" as="geometry">
-            <mxPoint as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-13" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.325;exitY=1.102;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.46;entryY=0.002;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4LD2Q_2ablrLRUKtAQnm-15" target="4LD2Q_2ablrLRUKtAQnm-1" edge="1">
-          <mxGeometry width="160" relative="1" as="geometry">
-            <mxPoint x="665" y="532" as="sourcePoint" />
-            <mxPoint x="825" y="532" as="targetPoint" />
-            <Array as="points" />
-          </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" 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" />
-          </mxGeometry>
-        </mxCell>
-        <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="50" y="510.00000000000006" width="190" height="104" as="geometry" />
-        </mxCell>
-        <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="+ 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;" parent="BmttCFs_K1xAuYzUHSLz-17" vertex="1">
-          <mxGeometry y="78" width="190" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-4" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="40" y="370" as="sourcePoint" />
-            <mxPoint x="30" y="660" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-5" value="0..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="VXFt1rTyLLwseOzf8AC8-4" vertex="1" connectable="0">
-          <mxGeometry x="0.7378" y="1" relative="1" as="geometry">
-            <mxPoint as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-18" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.007;entryY=0.004;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" target="90y9bFiBt-Dw9IB2Oaka-1" edge="1">
-          <mxGeometry x="-0.8176" relative="1" as="geometry">
-            <mxPoint x="50" y="370" as="sourcePoint" />
-            <mxPoint x="330" y="648.96" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="50" y="480" />
-              <mxPoint x="300" y="480" />
-              <mxPoint x="300" y="791" />
-            </Array>
-            <mxPoint as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-19" value="0..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-18" vertex="1" connectable="0">
-          <mxGeometry x="0.8861" y="-2" relative="1" as="geometry">
-            <mxPoint x="2" y="-51" as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.001;entryY=1.113;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.137;exitY=0.014;exitDx=0;exitDy=0;exitPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="90y9bFiBt-Dw9IB2Oaka-1" target="VXFt1rTyLLwseOzf8AC8-1" edge="1">
-          <mxGeometry relative="1" as="geometry">
-            <Array as="points">
-              <mxPoint x="362" y="650" />
-              <mxPoint x="280" y="650" />
-              <mxPoint x="280" y="617" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-22" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="390" y="690" as="sourcePoint" />
-            <mxPoint x="722" y="660" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="430" y="690" />
-              <mxPoint x="430" y="760" />
-              <mxPoint x="722" y="760" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-1" value="&amp;lt;&amp;lt;enum&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;Nutriton&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="740" y="790" width="140" height="202" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-2" value="CALORIES" 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-1" vertex="1">
-          <mxGeometry y="26" width="140" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-3" value="CARBS" 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-1" vertex="1">
-          <mxGeometry y="52" width="140" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-4" value="FAT" 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-1" vertex="1">
-          <mxGeometry y="78" width="140" height="32" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-5" value="PROTEINS" 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-1" vertex="1">
-          <mxGeometry y="110" width="140" height="32" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-6" value="FIBERS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1">
-          <mxGeometry y="142" width="140" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-7" value="SALT" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1">
-          <mxGeometry y="172" width="140" height="30" as="geometry" />
-        </mxCell>
-        <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="325" y="790" width="270" height="182" as="geometry">
-            <mxRectangle x="20" y="150" width="80" height="30" as="alternateBounds" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="90y9bFiBt-Dw9IB2Oaka-2" value="- ingredients: HashMap&amp;lt;RecipeComponent, Integer&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">
-          <mxGeometry y="26" width="270" height="34" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-2" value="- description : 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="90y9bFiBt-Dw9IB2Oaka-1" vertex="1">
-          <mxGeometry y="60" width="270" height="24" as="geometry" />
-        </mxCell>
-        <mxCell id="Cg_uZv0A1mTYIWKAJ-0d-3" value="- preparation : ArrayList&amp;lt;String&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">
-          <mxGeometry y="84" width="270" height="24" as="geometry" />
-        </mxCell>
-        <mxCell id="Cg_uZv0A1mTYIWKAJ-0d-4" 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">
-          <mxGeometry y="108" width="270" height="26" as="geometry" />
-        </mxCell>
-        <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="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="4LD2Q_2ablrLRUKtAQnm-12" value="NutritionTable" 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="720" y="390" width="260" height="250" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-13" value="&lt;div&gt;- table : Map&amp;lt;Nutrition, BigDecimal&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="4LD2Q_2ablrLRUKtAQnm-12" vertex="1">
-          <mxGeometry y="26" width="260" height="24" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-14" 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="4LD2Q_2ablrLRUKtAQnm-12" vertex="1">
-          <mxGeometry y="50" width="260" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-15" value="&lt;div&gt;+ NutritionTable(double caloriesDouble, dounle carbsDouble, double fatsDouble, double proteinDouble, double fibersDouble, double saltDouble)&lt;/div&gt;&lt;div&gt;+ NutritionTable(List&amp;lt;BigDecimal&amp;gt; nutrition)&lt;/div&gt;&lt;div&gt;- NutritionTable()&lt;/div&gt;&lt;div&gt;+ empty()&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getTable() : Map&amp;lt;Nutrition, BigDecimal&amp;gt;&lt;/div&gt;&lt;div&gt;+ get() : NutritionTable&lt;/div&gt;&lt;div&gt;+ @Override eqials(Object o) : boolean&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;/div&gt;&lt;div&gt;+ @Override hashCode() : int&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="4LD2Q_2ablrLRUKtAQnm-12" vertex="1">
-          <mxGeometry y="58" width="260" height="192" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-65" value="CategoryManager" 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;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="320" y="200" width="240" height="430" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-66" value="&lt;div&gt;- Logger : log&lt;/div&gt;&lt;div&gt;- allCategories : Map&amp;lt;Integer, Category&amp;gt; &lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
-          <mxGeometry y="26" width="240" height="44" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-67" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
-          <mxGeometry y="70" width="240" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-68" value="&lt;div&gt;+ CategoryManager()&lt;/div&gt;&lt;div&gt;+ CategoryManager(List&amp;lt;Category&amp;gt; categories)&lt;/div&gt;&lt;div&gt;+ addCategory(String name, int colourCode)&lt;/div&gt;&lt;div&gt;+ addCategory(Category c)&lt;/div&gt;&lt;div&gt;+ deleteCategory(String name)&lt;/div&gt;&lt;div&gt;+ getAllCategories() : List&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ clearCategories()&lt;/div&gt;&lt;div&gt;- getCategoryByName(String name) : Optional&amp;lt;Category&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;- getCategoryByName(String colourCode) : Optional&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ get(Integer key)) : Optional&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ getCategoryFromKeys(List&amp;lt;Integer&amp;gt; keys) List&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ numberToColorCodeString(int colourCode) : String&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;+ @Depricate CategoryManager(Map&amp;lt;Integer, Category&amp;gt; categories)&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
-          <mxGeometry y="78" width="240" height="352" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-74" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" target="UTPdYlRnybRvfPgnSFpF-70">
-          <mxGeometry relative="1" as="geometry">
-            <Array as="points">
-              <mxPoint x="-25" y="480" />
-              <mxPoint x="40" y="480" />
-            </Array>
-            <mxPoint x="-25" y="510" as="sourcePoint" />
-            <mxPoint x="-25" y="454" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-70" 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;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="40" y="654.96" width="220" height="290" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-71" value="&lt;div&gt;- code : String&lt;/div&gt;&lt;div&gt;- unit : Measurement&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- nutritionTable : NutritionTable&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
-          <mxGeometry y="26" width="220" height="74" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-72" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
-          <mxGeometry y="100" width="220" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-73" value="&lt;div&gt;+ Ingredient(Measurement unit, String name, NutritionTable nutritionTable)&lt;/div&gt;&lt;div&gt;- calculateUniqueCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override getName() : String&lt;/div&gt;&lt;div&gt;+ @Override getNutritionTable() : NutritionTable&lt;/div&gt;&lt;div&gt;+ @Override getMeasurement() : Measurement&lt;/div&gt;&lt;div&gt;+ @Override getUniqueCode() : String&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
-          <mxGeometry y="108" width="220" height="182" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-80" value="NutritionCalculator" 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;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="840" y="230" width="310" height="140" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-81" value="&lt;div&gt;- Logger : log&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80">
-          <mxGeometry y="26" width="310" height="34" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-82" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80">
-          <mxGeometry y="60" width="310" height="10" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-83" value="&lt;div&gt;+ calculateNautritionTable(Map&amp;lt;TecipeComponent, Integer&amp;gt; ingredients) : NutritionTable&lt;/div&gt;&lt;div&gt;+ calculateNutritionTable(MealPlan mealplan) : NutritionTable&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80">
-          <mxGeometry y="70" width="310" height="70" as="geometry" />
-        </mxCell>
-        <mxCell id="XnVSaR7xRqF0c78tSIC_-1" value="package : shoppingList" style="swimlane;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <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" />
-        </mxCell>
-        <mxCell id="XnVSaR7xRqF0c78tSIC_-3" value="- shoppingList : Map&amp;lt;Ingredient, Boolean&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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
-          <mxGeometry y="26" width="240" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="XnVSaR7xRqF0c78tSIC_-4" 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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
-          <mxGeometry y="52" width="240" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="XnVSaR7xRqF0c78tSIC_-5" value="+ clear() : void" 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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
-          <mxGeometry y="60" width="240" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="qvnAXoucquyjZ7kPEuXb-10" value="+ markDone(Ingredient i) : void" 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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
-          <mxGeometry y="86" width="240" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="qvnAXoucquyjZ7kPEuXb-11" value="+ markUndone(Ingredient i) : void" 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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
-          <mxGeometry y="112" width="240" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="qvnAXoucquyjZ7kPEuXb-12" value="+ get() : HashMap&amp;lt;Ingredient, Boolean&amp;gt;&amp;nbsp;" 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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
-          <mxGeometry y="138" width="240" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="xz0VCGe2YetrdaeYra_O-1" value="package : mealPlan" style="swimlane;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="1250" y="414" width="400" height="426" as="geometry" />
-        </mxCell>
-        <mxCell id="xz0VCGe2YetrdaeYra_O-2" value="MealPlan" 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="xz0VCGe2YetrdaeYra_O-1" vertex="1">
-          <mxGeometry x="20" y="39" width="360" height="330" as="geometry" />
-        </mxCell>
-        <mxCell id="xz0VCGe2YetrdaeYra_O-3" value="&lt;div&gt;- plan : Map &amp;lt;LocateDate, String &amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;- RecipeManager : recipemanager&lt;/div&gt;&lt;div&gt;- Logger : log&lt;br&gt;&lt;/div&gt;&lt;/div&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="xz0VCGe2YetrdaeYra_O-2" vertex="1">
-          <mxGeometry y="26" width="360" height="64" as="geometry" />
-        </mxCell>
-        <mxCell id="xz0VCGe2YetrdaeYra_O-4" 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="xz0VCGe2YetrdaeYra_O-2" vertex="1">
-          <mxGeometry y="90" width="360" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="xz0VCGe2YetrdaeYra_O-5" value="&lt;div&gt;+ MealPlan(Map&amp;lt;LoalDate, String&amp;gt; plan, RecipeManager recipeManager) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ MealPlan(RecipeManager recipeManager) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ addRecipeToMealPlan(Recipe recipe, LocalDate date) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ addRecipeToMealPlan()Recipe recipe, LocalDate date)&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ clear(LocateDate date) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ clear()&lt;/div&gt;&lt;div&gt;+ getRecipeCodeForDay(LocalDate date) : optional&amp;lt;String&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getAllRecipiesFromPlan() : Map&amp;gt;LocalDate, String&amp;gt;&lt;/div&gt;&lt;div&gt;+ getAllRecipiesFromPlan() :Map&amp;gt;LocalDate, String&amp;gt;&lt;/div&gt;&lt;div&gt;+ removePastRecipies()&lt;/div&gt;&lt;div&gt;+ getNutritionTable(LocalDate date) : NutritionTable&lt;br&gt;&lt;/div&gt;&lt;div&gt;- isDateValid(LocalDate date) : boolean&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean &lt;br&gt;&lt;/div&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="xz0VCGe2YetrdaeYra_O-2" vertex="1">
-          <mxGeometry y="98" width="360" height="232" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-5" value="Singleton : App" 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=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
-          <mxGeometry x="1232" y="50" width="420" height="294" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-39" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.278;entryY=1.138;entryDx=0;entryDy=0;entryPerimeter=0;" parent="lNXn1_JIS0mlgrxrveIr-5" target="qvnAXoucquyjZ7kPEuXb-12" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="98" as="sourcePoint" />
-            <mxPoint x="258" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="98" y="-63" />
-              <mxPoint x="145" y="-63" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-6" value="- recipeManager : RecipeManager" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="26" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-10" value="- shoppingList : ShoppingList&lt;br&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="52" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-11" value="- mealPlan : MealPlan" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="78" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-1" value="- search : RecipeSearch" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="104" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-3" value="- lastSearchResults : List&amp;lt;Recipe&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="130" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-15" value="- fileManager : FileManager" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="156" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-7" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="182" width="420" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-8" value="+ start() : void" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="190" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-2" value="+ search(lastSearchResults, String query) : ArrayList&amp;lt;Recipe&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="216" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-4" value="+ search(lastSearchResults, Category category) : ArrayList&amp;lt;Recipe&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="242" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-9" value="+ save(this) : void" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="268" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-11" value="FileManager" 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="1" vertex="1">
-          <mxGeometry x="1770" y="50" width="360" height="112" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-12" value="- savePath : Path" 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-11" vertex="1">
-          <mxGeometry y="26" width="360" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-13" 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="BmttCFs_K1xAuYzUHSLz-11" vertex="1">
-          <mxGeometry y="52" width="360" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-14" value="+ deserializeFromFile() : void" 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-11" vertex="1">
-          <mxGeometry y="60" width="360" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-16" value="+ serializeToFile(App app) : void" 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-11" vertex="1">
-          <mxGeometry y="86" width="360" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-32" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=1;entryY=0.11;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.004;exitY=0.051;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="h23uL9lWt6JHxaophjVK-1" target="1PDsnecl4zy3zphxMVey-1" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="1210" y="160" as="sourcePoint" />
-            <mxPoint x="1360" y="140" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="1190" y="155" />
-              <mxPoint x="1190" y="100" />
-              <mxPoint x="1160" y="100" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-37" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.305;exitY=0.969;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="BmttCFs_K1xAuYzUHSLz-9" target="xz0VCGe2YetrdaeYra_O-2" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="1310" y="370" as="sourcePoint" />
-            <mxPoint x="1470" y="370" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-42" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.417;entryY=-0.007;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="lNXn1_JIS0mlgrxrveIr-6" target="khY43H2GbW4oralui55t-9" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="650" y="-50" as="sourcePoint" />
-            <mxPoint x="100" y="20" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="1210" y="89" />
-              <mxPoint x="1210" y="20" />
-              <mxPoint x="92" y="20" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-43" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.417;entryY=1.115;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="BmttCFs_K1xAuYzUHSLz-15" target="BmttCFs_K1xAuYzUHSLz-16" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="1690" y="220" as="sourcePoint" />
-            <mxPoint x="1850" y="220" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="1920" y="219" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-44" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-43" vertex="1" connectable="0">
-          <mxGeometry x="0.7682" y="-1" relative="1" as="geometry">
-            <mxPoint y="-10" as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="xz0VCGe2YetrdaeYra_O-3" edge="1">
-          <mxGeometry relative="1" as="geometry">
-            <mxPoint x="880" y="380" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="1032" y="492" />
-              <mxPoint x="1032" y="440" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-3" value="Package Components " style="swimlane;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;" vertex="1" parent="1">
-          <mxGeometry x="-760" y="-660" width="620" height="470" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-22" value="Componetens for JavaFX files to use " style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
-          <mxGeometry x="40" y="30" width="160" height="30" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-27" value="CetgoryCheckBox" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
-          <mxGeometry x="50" y="75" width="160" height="140" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-28" value="&lt;div&gt;- category : Category&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-27">
-          <mxGeometry y="26" width="160" height="34" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-29" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-27">
-          <mxGeometry y="60" width="160" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-30" value="&lt;div&gt;+ CategoryCheckBox : Category category&lt;/div&gt;&lt;div&gt;+ getAssociatedCategory() : category&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-27">
-          <mxGeometry y="68" width="160" height="72" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-36" value="CategoryPreviewLabel" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
-          <mxGeometry x="240" y="75" width="160" height="140" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-37" value="- category : Category" 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="UTPdYlRnybRvfPgnSFpF-36">
-          <mxGeometry y="26" width="160" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-38" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-36">
-          <mxGeometry y="52" width="160" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-39" value="&lt;div&gt;+ CategoryLabel : Category category&lt;/div&gt;&lt;div&gt;+ getAssociatedCategory() : category&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-36">
-          <mxGeometry y="60" width="160" height="80" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-40" value="Classname" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
-          <mxGeometry x="440" y="70" width="160" height="190" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-41" value="&lt;div&gt;- amount : int&lt;/div&gt;&lt;div&gt;- component : RecipeComponbent&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-40">
-          <mxGeometry y="26" width="160" height="54" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-42" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-40">
-          <mxGeometry y="80" width="160" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-43" value="&lt;div&gt;+ IngredientLabel : int amount, RecipeComponent component&lt;/div&gt;&lt;div&gt;getAmount() : amount &lt;br&gt;&lt;/div&gt;&lt;div&gt;getComponent() : component&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-40">
-          <mxGeometry y="88" width="160" height="102" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-48" value="RecipeVBox" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
-          <mxGeometry x="240" y="290" width="160" height="150" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-49" value="- recipe : 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="UTPdYlRnybRvfPgnSFpF-48">
-          <mxGeometry y="26" width="160" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-50" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-48">
-          <mxGeometry y="52" width="160" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-51" value="&lt;div&gt;+ RecipeVBox : Recipe recipe, CategoryManager categorymanager&lt;/div&gt;&lt;div&gt;+ getAssociatedRecipe() : recipe&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-48">
-          <mxGeometry y="60" width="160" height="90" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-52" value="Classname" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
-          <mxGeometry x="30" y="260" width="200" height="190" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-53" value="&lt;div&gt;- component : RecipeComponent&lt;/div&gt;&lt;div&gt;- amountTextField : TextField&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-52">
-          <mxGeometry y="26" width="200" height="54" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-54" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-52">
-          <mxGeometry y="80" width="200" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-55" value="&lt;div&gt;+ IngredientSearchResultLabel : RecipeComponent component&lt;/div&gt;&lt;div&gt;+ validateAmountInput : boolean&lt;/div&gt;&lt;div&gt;+ getAmount() : amount&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getComponent() : amountTextField&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-52">
-          <mxGeometry y="88" width="200" height="102" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-44" value="IngredientSearchResultLabel" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
-          <mxGeometry x="420" y="290" width="180" height="120" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-45" value="- base_Style : 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-44">
-          <mxGeometry y="26" width="180" height="34" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-46" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-44">
-          <mxGeometry y="60" width="180" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-47" value="+ IngredientSearchResultLabel : RecipeComponent component" 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="UTPdYlRnybRvfPgnSFpF-44">
-          <mxGeometry y="68" width="180" height="52" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-57" value="Exceptions" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="-760" y="-130" width="200" height="200" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-58" value="Controller" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="-530" y="-130" width="200" height="200" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-59" value="File System" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="-760" y="130" width="200" height="200" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-60" value="helpers" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="-530" y="130" width="200" height="200" as="geometry" />
-        </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-4" value="&amp;lt;&amp;lt;enum&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;Measurement&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="1" vertex="1">
-          <mxGeometry x="-360" y="710" width="140" height="142" as="geometry" />
-        </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-5" value="PIECE" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="26" width="140" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-6" value="GRAM" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="52" width="140" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-7" value="MILLILITER" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="78" width="140" height="32" as="geometry" />
-        </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-9" value="PINCH" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="110" width="140" height="32" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-11" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0.611;entryY=-0.021;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="UTPdYlRnybRvfPgnSFpF-70" target="WwHfsR9ecwNkWHZ6sJ4B-4" edge="1">
-          <mxGeometry width="160" relative="1" as="geometry">
-            <mxPoint x="-50.66000000000008" y="561.6099999999999" as="sourcePoint" />
-            <mxPoint x="-40" y="396" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-76" value="IngredientManager" 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;" vertex="1" parent="1">
-          <mxGeometry x="-690" y="380" width="250" height="320" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-77" value="&lt;div&gt;- Logger : log&lt;/div&gt;&lt;div&gt;- map&amp;lt;String, Ingredients&amp;gt; : allIngredients&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
-          <mxGeometry y="26" width="250" height="44" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-78" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
-          <mxGeometry y="70" width="250" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-79" value="&lt;div&gt;+ IngredientManager()&lt;/div&gt;&lt;div&gt;+IngredientManager(List&amp;lt;Ingredient&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ IngredientManager(Map&amp;lt;String, Ingredient&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ adIngredient(Ingredient in)&lt;/div&gt;&lt;div&gt;+ addIngredient(Measurement unit, String name, NutritionTable nutritionTable)&lt;/div&gt;&lt;div&gt;+ clearIngredients()&lt;/div&gt;&lt;div&gt;+ getIngredient(String code) : Optional&amp;lt;Ingredient&amp;gt;&lt;/div&gt;&lt;div&gt;+ getIngredient() : Map&amp;lt;String, Ingredient&amp;gt;&lt;/div&gt;&lt;div&gt;+ getIngredientFromKeys( Map&amp;lt;String, Ingredient&amp;gt; m) : Map&amp;lt;Ingredient, Integer&amp;gt; &lt;br&gt;&lt;/div&gt;&lt;div&gt;- getIngredientByName(String name) : Optional&amp;lt;Ingredient&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
-          <mxGeometry y="78" width="250" height="242" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-84" value="Recipe" 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;" vertex="1" parent="1">
-          <mxGeometry x="-170" y="880" width="360" height="750" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-85" value="&lt;div&gt;- code : String&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- ingredients : Map&amp;lt;String, Integer&amp;gt;&lt;/div&gt;&lt;div&gt;- desctription : String&lt;/div&gt;&lt;div&gt;- preparation : List&amp;lt;String&amp;gt;&lt;/div&gt;&lt;div&gt;- categories : List&amp;lt;Integer&amp;gt;&lt;/div&gt;&lt;div&gt;- preparationTimeMins : int&lt;/div&gt;&lt;div&gt;- nutritionTable : NutritionTable&lt;/div&gt;&lt;div&gt;- creationTime : LocalDateTime&lt;/div&gt;&lt;div&gt;- filepathForImage : URL&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84">
-          <mxGeometry y="26" width="360" height="150" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-86" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84">
-          <mxGeometry y="176" width="360" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-87" value="&lt;div&gt;+ Recipe( String name, Map&amp;lt;RecipeComponent, Integer&amp;gt; ingredients, String desctription, List&amp;lt;String&amp;gt; preparation, List&amp;lt;Category&amp;gt; categories, Integer preparationTimeMins)&lt;/div&gt;&lt;div&gt;+ Recipe( String name, Map&amp;lt;RecipeComponent, Integer&amp;gt; ingredients, String desctription, List&amp;lt;String&amp;gt; preparation, &lt;br&gt;List&amp;lt;Category&amp;gt; categories, Integer preparationTimeMins, NutritionTable nutritiontable)&lt;/div&gt;&lt;div&gt;+ Recipe( String name, Map&amp;lt;String, Integer&amp;gt; ingredients, &lt;br&gt;String desctription, List&amp;lt;String&amp;gt; preparation, &lt;br&gt;List&amp;lt;Integer&amp;gt; categories, Integer preparationTimeMins, NutritionTable nutritionTable, LocalDateTime creationTime, String code)&lt;/div&gt;&lt;div&gt;+ setName(String name) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getName() : String&lt;/div&gt;&lt;div&gt;+ getDescription() : String&lt;/div&gt;&lt;div&gt;+ setDescription(String description)&lt;/div&gt;&lt;div&gt;+ getPreparation()&lt;/div&gt;&lt;div&gt;+ setPreparartion(List&amp;lt;String&amp;gt; preparation)&lt;/div&gt;&lt;div&gt;+ setCategories(List&amp;lt;Integer&amp;gt; categories)&lt;/div&gt;&lt;div&gt;+ addCategorie(Category category)&lt;/div&gt;&lt;div&gt;+ setPerparationTimeMins(Integer preparationsTimeMins)&lt;/div&gt;&lt;div&gt;+ getCreationTime() : LocalDateTime&lt;/div&gt;&lt;div&gt;+ setNutritionTable(NutritionTable nutritiontable)&lt;/div&gt;&lt;div&gt;+ getNutritionTable()&lt;/div&gt;&lt;div&gt;+ getMeasurement() : Measurement&lt;/div&gt;&lt;div&gt;+ setIngredientFromRecipeComponents(Map&amp;lt;RecipeComponent, Integer&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ setIngredientsFromKeys(Map&amp;lt;String, Integer&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;- setCategoriesFromObjects(List&amp;lt;Categories&amp;gt; categories)&lt;/div&gt;&lt;div&gt;- recipeObjectMapToKeyMap(Map&amp;lt;RecipeComponent, Integer&amp;gt; map) : Map&amp;lt;String, Integer&amp;gt; &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ setImage(URL path) &lt;br&gt;&lt;/div&gt;&lt;div&gt;- calculateUniqueCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override getMeasurement()&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;/div&gt;&lt;div&gt;+ @Override getUniqueCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84">
-          <mxGeometry y="184" width="360" height="566" as="geometry" />
-        </mxCell>
-      </root>
-    </mxGraphModel>
-  </diagram>
-</mxfile>
diff --git a/UML/TastyPages_Use-case_Class_Diagram6.drawio b/UML/TastyPages_Use-case_Class_Diagram_full.drawio
similarity index 76%
rename from UML/TastyPages_Use-case_Class_Diagram6.drawio
rename to UML/TastyPages_Use-case_Class_Diagram_full.drawio
index 549b06f39410a8a80fa2f4757cbd729987af6d8a..a4426081b0bcec49ba9bcae48ccf7f77c6c90beb 100644
--- a/UML/TastyPages_Use-case_Class_Diagram6.drawio
+++ b/UML/TastyPages_Use-case_Class_Diagram_full.drawio
@@ -1,6 +1,6 @@
-<mxfile host="app.diagrams.net" modified="2023-06-19T15:59:15.596Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0" etag="l3LHdDbAK6yaNPSjJYRP" version="21.4.0" type="device" pages="2">
+<mxfile host="app.diagrams.net" modified="2023-06-21T14:55:52.257Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0" etag="r0cTmMHlj1w1VGl0a8iW" version="21.4.0" type="device" pages="2">
   <diagram name="Seite-1" id="guNTSU0fiwR1g74g93dq">
-    <mxGraphModel dx="1890" dy="2275" 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="1788" dy="1983" 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" />
@@ -323,15 +323,41 @@
     </mxGraphModel>
   </diagram>
   <diagram id="IOxpQtQOinXd_60UH0zV" name="Seite-2">
-    <mxGraphModel dx="3404" dy="2272" 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="3865" dy="2245" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" 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 : recipe" style="swimlane;whiteSpace=wrap;html=1;rounded=0;" parent="1" vertex="1">
-          <mxGeometry x="-180" y="-160" width="1170" height="1520" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-55" value="name" style="endArrow=block;endFill=1;html=1;align=left;verticalAlign=top;rounded=0;entryX=1.013;entryY=0.886;entryDx=0;entryDy=0;exitX=0.003;exitY=0.039;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" edge="1" parent="1" source="xz0VCGe2YetrdaeYra_O-2" target="khY43H2GbW4oralui55t-12">
+          <mxGeometry x="-1" relative="1" as="geometry">
+            <mxPoint x="1210" y="1460" as="sourcePoint" />
+            <mxPoint x="1370" y="1460" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="1120" y="952" />
+              <mxPoint x="1120" y="737" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-56" value="1" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" connectable="0" vertex="1" parent="V3HS-9MRJcJGyJpxUQXu-55">
+          <mxGeometry x="-1" relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-96" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
+          <mxGeometry x="1090" y="860" width="50" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-39" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;exitX=0.218;exitY=1.019;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="UTPdYlRnybRvfPgnSFpF-139">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="410" y="850" as="sourcePoint" />
+            <mxPoint x="770" y="930" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="1190" y="870" />
+              <mxPoint x="770" y="870" />
+            </Array>
+          </mxGeometry>
         </mxCell>
-        <mxCell id="khY43H2GbW4oralui55t-9" value="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=#ffe6cc;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="20" y="30" width="240" height="280" as="geometry" />
+        <mxCell id="4rBL8TMRcDE2g0Xyakx7-3" value="package : recipe" style="swimlane;whiteSpace=wrap;html=1;rounded=0;swimlaneFillColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
+          <mxGeometry x="-299" y="40" width="1370" height="1560" as="geometry" />
+        </mxCell>
+        <mxCell id="khY43H2GbW4oralui55t-9" value="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=#fff2cc;strokeColor=#d6b656;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="1090" y="440" width="240" height="280" as="geometry" />
         </mxCell>
         <mxCell id="khY43H2GbW4oralui55t-10" value="&lt;div&gt;- log : Logger&lt;br&gt;&lt;/div&gt;&lt;div&gt;- allRecipes : Map&amp;lt;String, Recipe&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="khY43H2GbW4oralui55t-9" vertex="1">
           <mxGeometry y="26" width="240" height="44" as="geometry" />
@@ -342,83 +368,100 @@
         <mxCell id="khY43H2GbW4oralui55t-12" value="&lt;div&gt;+ RecipeManager(List&amp;lt;Recipe&amp;gt; recipes)&lt;/div&gt;&lt;div&gt;+ RecipeManager()&lt;/div&gt;&lt;div&gt;+ addRecipe(Recipe recipe) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getRecipeByCode(String code) : Recipe&lt;/div&gt;&lt;div&gt;+ deleteRecipe(String name)&lt;/div&gt;&lt;div&gt;+ deleteRecipe(Recipe r)&lt;/div&gt;&lt;div&gt;- getRecipeByName(String name) : Optionale&amp;lt;Recipe&amp;gt;&lt;/div&gt;&lt;div&gt;+ clear()&lt;/div&gt;&lt;div&gt;+ getRecipes() : List&amp;lt;Recipe&amp;gt;&lt;br&gt;&lt;/div&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="khY43H2GbW4oralui55t-9" vertex="1">
           <mxGeometry y="78" width="240" height="202" as="geometry" />
         </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.494;entryY=1.002;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.529;exitY=0.005;exitDx=0;exitDy=0;exitPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-70" target="BmttCFs_K1xAuYzUHSLz-18" edge="1">
-          <mxGeometry relative="1" as="geometry">
-            <Array as="points">
-              <mxPoint x="156" y="655" />
-              <mxPoint x="156" y="655" />
-            </Array>
-            <mxPoint x="155" y="670" as="sourcePoint" />
-          </mxGeometry>
+        <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=#dae8fc;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#6c8ebf;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="65" y="399" width="235" height="130" as="geometry" />
         </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-8" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="VXFt1rTyLLwseOzf8AC8-6" vertex="1" connectable="0">
-          <mxGeometry x="0.5309" y="1" relative="1" as="geometry">
-            <mxPoint as="offset" />
-          </mxGeometry>
+        <mxCell id="BmttCFs_K1xAuYzUHSLz-18" value="&lt;div&gt;+ getName() : String&lt;/div&gt;&lt;div&gt;+ fetNutrotionTable() : Nutritiontable&lt;/div&gt;&lt;div&gt;+ getMeasurement() : Measurement&lt;/div&gt;&lt;div&gt;+ getUniqueCode() : String&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;br&gt;&lt;/div&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="BmttCFs_K1xAuYzUHSLz-17" vertex="1">
+          <mxGeometry y="26" width="235" height="104" as="geometry" />
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-13" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.326;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.447;entryY=-0.008;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4LD2Q_2ablrLRUKtAQnm-15" target="4LD2Q_2ablrLRUKtAQnm-1" edge="1">
-          <mxGeometry width="160" relative="1" as="geometry">
-            <mxPoint x="665" y="532" as="sourcePoint" />
-            <mxPoint x="825" y="532" as="targetPoint" />
-            <Array as="points" />
-          </mxGeometry>
+        <mxCell id="1PDsnecl4zy3zphxMVey-1" value="RecipeSearch" 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=#fff2cc;strokeColor=#d6b656;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="770" y="530" width="300" height="250" as="geometry" />
         </mxCell>
-        <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=#ffe6cc;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="40" y="350" width="235" height="130" as="geometry" />
+        <mxCell id="ev62EXm1IyDULqRkRese-26" value="&lt;div&gt;- log : Logger&lt;br&gt;&lt;/div&gt;&lt;div&gt;- recipeManager : RecipeManager&lt;/div&gt;&lt;div&gt;- ingredientManager : IngredientManager&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="1PDsnecl4zy3zphxMVey-1" vertex="1">
+          <mxGeometry y="26" width="300" height="54" as="geometry" />
         </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-18" value="&lt;div&gt;+ getName() : String&lt;/div&gt;&lt;div&gt;+ fetNutrotionTable() : Nutritiontable&lt;/div&gt;&lt;div&gt;+ getMeasurement() : Measurement&lt;/div&gt;&lt;div&gt;+ getUniqueCode() : String&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;br&gt;&lt;/div&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="BmttCFs_K1xAuYzUHSLz-17" vertex="1">
-          <mxGeometry y="26" width="235" height="104" as="geometry" />
+        <mxCell id="ev62EXm1IyDULqRkRese-27" 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="1PDsnecl4zy3zphxMVey-1" vertex="1">
+          <mxGeometry y="80" width="300" height="8" as="geometry" />
         </mxCell>
-        <mxCell id="VXFt1rTyLLwseOzf8AC8-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.067;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.868;entryY=0.99;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-84" target="BmttCFs_K1xAuYzUHSLz-18" edge="1">
-          <mxGeometry relative="1" as="geometry">
-            <Array as="points">
-              <mxPoint x="362" y="772" />
-              <mxPoint x="362" y="640" />
-              <mxPoint x="244" y="640" />
-            </Array>
-            <mxPoint x="361.99000000000024" y="792.5480000000002" as="sourcePoint" />
-            <mxPoint x="250" y="530" as="targetPoint" />
-          </mxGeometry>
+        <mxCell id="ev62EXm1IyDULqRkRese-28" value="&lt;div&gt;+ RecipeSearch(RecipeManager recipemanager, IngredientManager ingredientManager)&lt;/div&gt;&lt;div&gt;+ searchByQuery(List&amp;lt;Recipe&amp;gt; recipeToSearch, String query) : List&amp;lt;Recipe&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ searchByCategory(List&amp;lt;Recipe&amp;gt; recipeToSearch, List&amp;lt;Category&amp;gt; categoryToSearch) : List&amp;lt;Recipe&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ searchTroughNames(String query) : List&amp;lt;RecipeComponent&amp;gt;&lt;/div&gt;&lt;div&gt;- containsAnyToken(String input, RecipeComponent component) : boolean&lt;br&gt;&lt;/div&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="1PDsnecl4zy3zphxMVey-1" vertex="1">
+          <mxGeometry y="88" width="300" height="162" as="geometry" />
         </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-22" value="n" style="endArrow=none;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.281;entryY=0.003;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endFill=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" target="UTPdYlRnybRvfPgnSFpF-84" edge="1" source="UTPdYlRnybRvfPgnSFpF-65">
-          <mxGeometry x="0.8127" relative="1" as="geometry">
-            <mxPoint x="390" y="690" as="sourcePoint" />
-            <mxPoint x="470" y="670" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="440" y="770" />
-              <mxPoint x="441" y="770" />
-            </Array>
-            <mxPoint as="offset" />
-          </mxGeometry>
+        <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;fillColor=#fff2cc;strokeColor=#d6b656;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="470" y="1060" width="245" height="230" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-146" value="1" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="ev62EXm1IyDULqRkRese-22">
-          <mxGeometry x="-0.3725" y="1" relative="1" as="geometry">
-            <mxPoint x="-1" y="-20" as="offset" />
-          </mxGeometry>
+        <mxCell id="4db8lyx7makHAff3xmPV-2" value="&lt;div&gt;- code : Integer&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- colourCode : String &lt;br&gt;&lt;/div&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-1" vertex="1">
+          <mxGeometry y="26" width="245" height="54" 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="80" width="245" height="8" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-1" value="&amp;lt;&amp;lt;enum&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;Nutriton&lt;/b&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#ffe6cc;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="740" y="790" width="140" height="202" as="geometry" />
+        <mxCell id="4db8lyx7makHAff3xmPV-4" value="&lt;div&gt;+ Category(String name, int colourName)&lt;/div&gt;&lt;div&gt;+ Category(String name, String colourName, int code)&lt;/div&gt;&lt;div&gt;+ getColourCode() : String&lt;/div&gt;&lt;div&gt;+ getName() : String&amp;nbsp;&lt;/div&gt;&lt;div&gt;+ getCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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-1" vertex="1">
+          <mxGeometry y="88" width="245" height="142" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-2" value="CALORIES" 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-1" vertex="1">
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-70" 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;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
+          <mxGeometry x="300" y="80" width="220" height="290" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-71" value="&lt;div&gt;- code : String&lt;/div&gt;&lt;div&gt;- unit : Measurement&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- nutritionTable : NutritionTable&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
+          <mxGeometry y="26" width="220" height="74" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-72" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
+          <mxGeometry y="100" width="220" height="8" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-73" value="&lt;div&gt;+ Ingredient(Measurement unit, String name, NutritionTable nutritionTable)&lt;/div&gt;&lt;div&gt;- calculateUniqueCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override getName() : String&lt;/div&gt;&lt;div&gt;+ @Override getNutritionTable() : NutritionTable&lt;/div&gt;&lt;div&gt;+ @Override getMeasurement() : Measurement&lt;/div&gt;&lt;div&gt;+ @Override getUniqueCode() : String&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
+          <mxGeometry y="108" width="220" height="182" as="geometry" />
+        </mxCell>
+        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-4" value="&amp;lt;&amp;lt;enum&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;Measurement&lt;/b&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#82b366;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="120" y="80" width="140" height="142" as="geometry" />
+        </mxCell>
+        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-5" value="PIECE" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
           <mxGeometry y="26" width="140" height="26" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-3" value="CARBS" 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-1" vertex="1">
+        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-6" value="GRAM" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
           <mxGeometry y="52" width="140" height="26" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-4" value="FAT" 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-1" vertex="1">
+        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-7" value="MILLILITER" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
           <mxGeometry y="78" width="140" height="32" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-5" value="PROTEINS" 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-1" vertex="1">
+        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-9" value="PINCH" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
           <mxGeometry y="110" width="140" height="32" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-6" value="FIBERS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1">
-          <mxGeometry y="142" width="140" height="30" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-76" value="IngredientManager" 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=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
+          <mxGeometry x="500" y="450" width="250" height="320" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-7" value="SALT" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1">
-          <mxGeometry y="172" width="140" height="30" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-77" value="&lt;div&gt;- log : Logger&lt;br&gt;&lt;/div&gt;&lt;div&gt;- map&amp;lt;String, Ingredients&amp;gt; : allIngredients&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
+          <mxGeometry y="26" width="250" height="44" as="geometry" />
         </mxCell>
-        <mxCell id="4LD2Q_2ablrLRUKtAQnm-12" value="NutritionTable" 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=#ffe6cc;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="720" y="390" width="260" height="250" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-78" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
+          <mxGeometry y="70" width="250" height="8" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-79" value="&lt;div&gt;+ IngredientManager()&lt;/div&gt;&lt;div&gt;+IngredientManager(List&amp;lt;Ingredient&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ IngredientManager(Map&amp;lt;String, Ingredient&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ adIngredient(Ingredient in)&lt;/div&gt;&lt;div&gt;+ addIngredient(Measurement unit, String name, NutritionTable nutritionTable)&lt;/div&gt;&lt;div&gt;+ clearIngredients()&lt;/div&gt;&lt;div&gt;+ getIngredient(String code) : Optional&amp;lt;Ingredient&amp;gt;&lt;/div&gt;&lt;div&gt;+ getIngredient() : Map&amp;lt;String, Ingredient&amp;gt;&lt;/div&gt;&lt;div&gt;+ getIngredientFromKeys( Map&amp;lt;String, Ingredient&amp;gt; m) : Map&amp;lt;Ingredient, Integer&amp;gt; &lt;br&gt;&lt;/div&gt;&lt;div&gt;- getIngredientByName(String name) : Optional&amp;lt;Ingredient&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
+          <mxGeometry y="78" width="250" height="242" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-65" value="CategoryManager" 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=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
+          <mxGeometry x="920" y="890" width="240" height="430" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-66" value="&lt;div&gt;- log : Logger&lt;/div&gt;&lt;div&gt;- allCategories : Map&amp;lt;Integer, Category&amp;gt; &lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
+          <mxGeometry y="26" width="240" height="44" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-67" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
+          <mxGeometry y="70" width="240" height="8" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-68" value="&lt;div&gt;+ CategoryManager()&lt;/div&gt;&lt;div&gt;+ CategoryManager(List&amp;lt;Category&amp;gt; categories)&lt;/div&gt;&lt;div&gt;+ addCategory(String name, int colourCode)&lt;/div&gt;&lt;div&gt;+ addCategory(Category c)&lt;/div&gt;&lt;div&gt;+ deleteCategory(String name)&lt;/div&gt;&lt;div&gt;+ getAllCategories() : List&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ clearCategories()&lt;/div&gt;&lt;div&gt;- getCategoryByName(String name) : Optional&amp;lt;Category&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;- getCategoryByName(String colourCode) : Optional&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ get(Integer key)) : Optional&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ getCategoryFromKeys(List&amp;lt;Integer&amp;gt; keys) List&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ numberToColorCodeString(int colourCode) : String&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;+ @Depricate CategoryManager(Map&amp;lt;Integer, Category&amp;gt; categories)&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
+          <mxGeometry y="78" width="240" height="352" as="geometry" />
+        </mxCell>
+        <mxCell id="ev62EXm1IyDULqRkRese-13" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.614;exitY=-0.002;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.149;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4LD2Q_2ablrLRUKtAQnm-12" target="4LD2Q_2ablrLRUKtAQnm-1" edge="1">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="665" y="532" as="sourcePoint" />
+            <mxPoint x="1170" y="80" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="710" y="60" />
+              <mxPoint x="780" y="60" />
+              <mxPoint x="870" y="60" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-12" value="NutritionTable" 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=#fff2cc;strokeColor=#d6b656;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="550" y="90" width="260" height="250" as="geometry" />
         </mxCell>
         <mxCell id="4LD2Q_2ablrLRUKtAQnm-13" value="&lt;div&gt;- table : Map&amp;lt;Nutrition, BigDecimal&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="4LD2Q_2ablrLRUKtAQnm-12" vertex="1">
           <mxGeometry y="26" width="260" height="24" as="geometry" />
@@ -429,32 +472,29 @@
         <mxCell id="4LD2Q_2ablrLRUKtAQnm-15" value="&lt;div&gt;+ NutritionTable(double caloriesDouble, dounle carbsDouble, double fatsDouble, double proteinDouble, double fibersDouble, double saltDouble)&lt;/div&gt;&lt;div&gt;+ NutritionTable(List&amp;lt;BigDecimal&amp;gt; nutrition)&lt;/div&gt;&lt;div&gt;- NutritionTable()&lt;/div&gt;&lt;div&gt;+ empty()&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getTable() : Map&amp;lt;Nutrition, BigDecimal&amp;gt;&lt;/div&gt;&lt;div&gt;+ get() : NutritionTable&lt;/div&gt;&lt;div&gt;+ @Override eqials(Object o) : boolean&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;/div&gt;&lt;div&gt;+ @Override hashCode() : int&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="4LD2Q_2ablrLRUKtAQnm-12" vertex="1">
           <mxGeometry y="58" width="260" height="192" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-65" value="CategoryManager" 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=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="320" y="200" width="240" height="430" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-66" value="&lt;div&gt;- log : Logger&lt;/div&gt;&lt;div&gt;- allCategories : Map&amp;lt;Integer, Category&amp;gt; &lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
-          <mxGeometry y="26" width="240" height="44" as="geometry" />
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-1" value="&amp;lt;&amp;lt;enum&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;Nutriton&lt;/b&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#82b366;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
+          <mxGeometry x="850" y="80" width="140" height="202" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-67" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
-          <mxGeometry y="70" width="240" height="8" as="geometry" />
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-2" value="CALORIES" 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-1" vertex="1">
+          <mxGeometry y="26" width="140" height="26" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-68" value="&lt;div&gt;+ CategoryManager()&lt;/div&gt;&lt;div&gt;+ CategoryManager(List&amp;lt;Category&amp;gt; categories)&lt;/div&gt;&lt;div&gt;+ addCategory(String name, int colourCode)&lt;/div&gt;&lt;div&gt;+ addCategory(Category c)&lt;/div&gt;&lt;div&gt;+ deleteCategory(String name)&lt;/div&gt;&lt;div&gt;+ getAllCategories() : List&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ clearCategories()&lt;/div&gt;&lt;div&gt;- getCategoryByName(String name) : Optional&amp;lt;Category&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;- getCategoryByName(String colourCode) : Optional&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ get(Integer key)) : Optional&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ getCategoryFromKeys(List&amp;lt;Integer&amp;gt; keys) List&amp;lt;Category&amp;gt;&lt;/div&gt;&lt;div&gt;+ numberToColorCodeString(int colourCode) : String&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;+ @Depricate CategoryManager(Map&amp;lt;Integer, Category&amp;gt; categories)&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65">
-          <mxGeometry y="78" width="240" height="352" as="geometry" />
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-3" value="CARBS" 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-1" vertex="1">
+          <mxGeometry y="52" width="140" height="26" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-70" 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;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="40" y="654.96" width="220" height="290" as="geometry" />
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-4" value="FAT" 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-1" vertex="1">
+          <mxGeometry y="78" width="140" height="32" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-71" value="&lt;div&gt;- code : String&lt;/div&gt;&lt;div&gt;- unit : Measurement&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- nutritionTable : NutritionTable&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
-          <mxGeometry y="26" width="220" height="74" as="geometry" />
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-5" value="PROTEINS" 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-1" vertex="1">
+          <mxGeometry y="110" width="140" height="32" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-72" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
-          <mxGeometry y="100" width="220" height="8" as="geometry" />
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-6" value="FIBERS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1">
+          <mxGeometry y="142" width="140" height="30" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-73" value="&lt;div&gt;+ Ingredient(Measurement unit, String name, NutritionTable nutritionTable)&lt;/div&gt;&lt;div&gt;- calculateUniqueCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override getName() : String&lt;/div&gt;&lt;div&gt;+ @Override getNutritionTable() : NutritionTable&lt;/div&gt;&lt;div&gt;+ @Override getMeasurement() : Measurement&lt;/div&gt;&lt;div&gt;+ @Override getUniqueCode() : String&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70">
-          <mxGeometry y="108" width="220" height="182" as="geometry" />
+        <mxCell id="4LD2Q_2ablrLRUKtAQnm-7" value="SALT" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1">
+          <mxGeometry y="172" width="140" height="30" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-80" value="NutritionCalculator" 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=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="840" y="230" width="310" height="140" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-80" value="NutritionCalculator" 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=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
+          <mxGeometry x="1020" y="50" width="310" height="140" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-81" value="&lt;div&gt;- log : Logger&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80">
           <mxGeometry y="26" width="310" height="34" as="geometry" />
@@ -465,8 +505,8 @@
         <mxCell id="UTPdYlRnybRvfPgnSFpF-83" value="&lt;div&gt;+ calculateNautritionTable(Map&amp;lt;TecipeComponent, Integer&amp;gt; ingredients) : NutritionTable&lt;/div&gt;&lt;div&gt;+ calculateNutritionTable(MealPlan mealplan) : NutritionTable&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80">
           <mxGeometry y="70" width="310" height="70" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-84" value="Recipe" 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=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="340" y="770" width="360" height="750" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-84" value="Recipe" 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=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
+          <mxGeometry x="70" y="590" width="360" height="750" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-85" value="&lt;div&gt;- code : String&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- ingredients : Map&amp;lt;String, Integer&amp;gt;&lt;/div&gt;&lt;div&gt;- desctription : String&lt;/div&gt;&lt;div&gt;- preparation : List&amp;lt;String&amp;gt;&lt;/div&gt;&lt;div&gt;- categories : List&amp;lt;Integer&amp;gt;&lt;/div&gt;&lt;div&gt;- preparationTimeMins : int&lt;/div&gt;&lt;div&gt;- nutritionTable : NutritionTable&lt;/div&gt;&lt;div&gt;- creationTime : LocalDateTime&lt;/div&gt;&lt;div&gt;- filepathForImage : URL&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84">
           <mxGeometry y="26" width="360" height="150" as="geometry" />
@@ -477,37 +517,147 @@
         <mxCell id="UTPdYlRnybRvfPgnSFpF-87" value="&lt;div&gt;+ Recipe( String name, Map&amp;lt;RecipeComponent, Integer&amp;gt; ingredients, String desctription, List&amp;lt;String&amp;gt; preparation, List&amp;lt;Category&amp;gt; categories, Integer preparationTimeMins)&lt;/div&gt;&lt;div&gt;+ Recipe( String name, Map&amp;lt;RecipeComponent, Integer&amp;gt; ingredients, String desctription, List&amp;lt;String&amp;gt; preparation, &lt;br&gt;List&amp;lt;Category&amp;gt; categories, Integer preparationTimeMins, NutritionTable nutritiontable)&lt;/div&gt;&lt;div&gt;+ Recipe( String name, Map&amp;lt;String, Integer&amp;gt; ingredients, &lt;br&gt;String desctription, List&amp;lt;String&amp;gt; preparation, &lt;br&gt;List&amp;lt;Integer&amp;gt; categories, Integer preparationTimeMins, NutritionTable nutritionTable, LocalDateTime creationTime, String code)&lt;/div&gt;&lt;div&gt;+ setName(String name) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getName() : String&lt;/div&gt;&lt;div&gt;+ getDescription() : String&lt;/div&gt;&lt;div&gt;+ setDescription(String description)&lt;/div&gt;&lt;div&gt;+ getPreparation()&lt;/div&gt;&lt;div&gt;+ setPreparartion(List&amp;lt;String&amp;gt; preparation)&lt;/div&gt;&lt;div&gt;+ setCategories(List&amp;lt;Integer&amp;gt; categories)&lt;/div&gt;&lt;div&gt;+ addCategorie(Category category)&lt;/div&gt;&lt;div&gt;+ setPerparationTimeMins(Integer preparationsTimeMins)&lt;/div&gt;&lt;div&gt;+ getCreationTime() : LocalDateTime&lt;/div&gt;&lt;div&gt;+ setNutritionTable(NutritionTable nutritiontable)&lt;/div&gt;&lt;div&gt;+ getNutritionTable()&lt;/div&gt;&lt;div&gt;+ getMeasurement() : Measurement&lt;/div&gt;&lt;div&gt;+ setIngredientFromRecipeComponents(Map&amp;lt;RecipeComponent, Integer&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ setIngredientsFromKeys(Map&amp;lt;String, Integer&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;- setCategoriesFromObjects(List&amp;lt;Categories&amp;gt; categories)&lt;/div&gt;&lt;div&gt;- recipeObjectMapToKeyMap(Map&amp;lt;RecipeComponent, Integer&amp;gt; map) : Map&amp;lt;String, Integer&amp;gt; &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ setImage(URL path) &lt;br&gt;&lt;/div&gt;&lt;div&gt;- calculateUniqueCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override getMeasurement()&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;/div&gt;&lt;div&gt;+ @Override getUniqueCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84">
           <mxGeometry y="184" width="360" height="566" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-76" value="IngredientManager" 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=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
-          <mxGeometry x="880" y="1050" width="250" height="320" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-26" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;entryX=0.41;entryY=1.061;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" target="WwHfsR9ecwNkWHZ6sJ4B-9">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="290" y="260" as="sourcePoint" />
+            <mxPoint x="420" y="270" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="177" y="260" />
+            </Array>
+          </mxGeometry>
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-77" value="&lt;div&gt;- log : Logger&lt;br&gt;&lt;/div&gt;&lt;div&gt;- map&amp;lt;String, Ingredients&amp;gt; : allIngredients&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
-          <mxGeometry y="26" width="250" height="44" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-34" value="" style="endArrow=none;html=1;rounded=0;entryX=1.008;entryY=0.065;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.164;exitY=1.002;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="khY43H2GbW4oralui55t-12" target="UTPdYlRnybRvfPgnSFpF-87">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="580" y="890" as="sourcePoint" />
+            <mxPoint x="630" y="840" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="1130" y="810" />
+            </Array>
+          </mxGeometry>
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-78" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
-          <mxGeometry y="70" width="250" height="8" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-99" value="n" style="edgeLabel;html=1;align=center;verticalAlign=top;resizable=0;points=[];" vertex="1" connectable="0" parent="V3HS-9MRJcJGyJpxUQXu-34">
+          <mxGeometry x="0.7769" y="-1" relative="1" as="geometry">
+            <mxPoint x="-66" y="7" as="offset" />
+          </mxGeometry>
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-79" value="&lt;div&gt;+ IngredientManager()&lt;/div&gt;&lt;div&gt;+IngredientManager(List&amp;lt;Ingredient&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ IngredientManager(Map&amp;lt;String, Ingredient&amp;gt; ingredients)&lt;/div&gt;&lt;div&gt;+ adIngredient(Ingredient in)&lt;/div&gt;&lt;div&gt;+ addIngredient(Measurement unit, String name, NutritionTable nutritionTable)&lt;/div&gt;&lt;div&gt;+ clearIngredients()&lt;/div&gt;&lt;div&gt;+ getIngredient(String code) : Optional&amp;lt;Ingredient&amp;gt;&lt;/div&gt;&lt;div&gt;+ getIngredient() : Map&amp;lt;String, Ingredient&amp;gt;&lt;/div&gt;&lt;div&gt;+ getIngredientFromKeys( Map&amp;lt;String, Ingredient&amp;gt; m) : Map&amp;lt;Ingredient, Integer&amp;gt; &lt;br&gt;&lt;/div&gt;&lt;div&gt;- getIngredientByName(String name) : Optional&amp;lt;Ingredient&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76">
-          <mxGeometry y="78" width="250" height="242" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-100" value="1" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="V3HS-9MRJcJGyJpxUQXu-34">
+          <mxGeometry x="-0.9259" y="1" relative="1" as="geometry">
+            <mxPoint y="-10" as="offset" />
+          </mxGeometry>
         </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-4" value="&amp;lt;&amp;lt;enum&amp;gt;&amp;gt;&lt;br&gt;&lt;b&gt;Measurement&lt;/b&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#ffe6cc;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1">
-          <mxGeometry x="30" y="1060" width="140" height="142" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-35" value="" style="endArrow=none;html=1;rounded=0;entryX=0.002;entryY=0.827;entryDx=0;entryDy=0;exitX=1;exitY=0.781;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4db8lyx7makHAff3xmPV-4" target="UTPdYlRnybRvfPgnSFpF-68">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="750" y="1140" as="sourcePoint" />
+            <mxPoint x="800" y="1090" as="targetPoint" />
+            <Array as="points" />
+          </mxGeometry>
         </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-5" value="PIECE" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="26" width="140" height="26" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-101" value="n" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];" vertex="1" connectable="0" parent="V3HS-9MRJcJGyJpxUQXu-35">
+          <mxGeometry x="-0.7695" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
         </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-6" value="GRAM" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="52" width="140" height="26" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-102" value="1" style="edgeLabel;html=1;align=center;verticalAlign=top;resizable=0;points=[];" vertex="1" connectable="0" parent="V3HS-9MRJcJGyJpxUQXu-35">
+          <mxGeometry x="0.7646" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
         </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-7" value="MILLILITER" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="78" width="140" height="32" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-36" value="" style="endArrow=none;html=1;rounded=0;exitX=0.201;exitY=0.004;exitDx=0;exitDy=0;entryX=1.004;entryY=0.767;entryDx=0;entryDy=0;endFill=0;entryPerimeter=0;exitPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="1PDsnecl4zy3zphxMVey-1" target="UTPdYlRnybRvfPgnSFpF-77">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="760" y="800" as="sourcePoint" />
+            <mxPoint x="560" y="410" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="830" y="510" />
+            </Array>
+          </mxGeometry>
         </mxCell>
-        <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-9" value="PINCH" 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="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1">
-          <mxGeometry y="110" width="140" height="32" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-37" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.984;entryDx=0;entryDy=0;exitX=0.801;exitY=-0.002;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="1PDsnecl4zy3zphxMVey-1" target="khY43H2GbW4oralui55t-10">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="770" y="1180" as="sourcePoint" />
+            <mxPoint x="820" y="1130" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="1010" y="510" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-44" value="" style="endArrow=none;html=1;rounded=0;entryX=0.655;entryY=1.001;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.064;exitY=1.005;exitDx=0;exitDy=0;endFill=0;exitPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-83" target="4LD2Q_2ablrLRUKtAQnm-15">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="1070" y="540" as="sourcePoint" />
+            <mxPoint x="1120" y="490" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="1040" y="360" />
+              <mxPoint x="720" y="360" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-47" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=1.003;exitY=0.819;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.86;entryY=0.002;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="BmttCFs_K1xAuYzUHSLz-18" target="UTPdYlRnybRvfPgnSFpF-84">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="290" y="540" as="sourcePoint" />
+            <mxPoint x="450" y="540" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="380" y="510" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-48" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=1.005;exitY=0.145;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.363;entryY=1.006;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="BmttCFs_K1xAuYzUHSLz-18" target="UTPdYlRnybRvfPgnSFpF-73">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="290" y="430" as="sourcePoint" />
+            <mxPoint x="450" y="430" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="380" y="440" />
+            </Array>
+          </mxGeometry>
         </mxCell>
-        <mxCell id="XnVSaR7xRqF0c78tSIC_-1" value="package : shoppingList" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
-          <mxGeometry x="1280" y="-590" width="300" height="390" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-50" value="" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1.006;exitY=0.363;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.074;entryY=1.012;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-85" target="4LD2Q_2ablrLRUKtAQnm-15">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="500" y="570" as="sourcePoint" />
+            <mxPoint x="660" y="570" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="460" y="670" />
+              <mxPoint x="460" y="390" />
+              <mxPoint x="569" y="390" />
+            </Array>
+          </mxGeometry>
         </mxCell>
-        <mxCell id="XnVSaR7xRqF0c78tSIC_-2" value="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;" parent="XnVSaR7xRqF0c78tSIC_-1" vertex="1">
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-59" value="" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;entryX=0.818;entryY=0.006;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.11;exitY=-0.003;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4LD2Q_2ablrLRUKtAQnm-12" target="UTPdYlRnybRvfPgnSFpF-70">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="740" y="390" as="sourcePoint" />
+            <mxPoint x="900" y="390" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="580" y="60" />
+              <mxPoint x="480" y="60" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-62" value="" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;entryX=1.001;entryY=0.364;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" target="UTPdYlRnybRvfPgnSFpF-87">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="919" y="980" as="sourcePoint" />
+            <mxPoint x="940" y="830" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-95" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;rotation=90;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3">
+          <mxGeometry x="455" y="415" width="10" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-65" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.479;exitY=0;exitDx=0;exitDy=0;entryX=0.639;entryY=1.001;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-76" target="UTPdYlRnybRvfPgnSFpF-73">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="1210" y="680" as="sourcePoint" />
+            <mxPoint x="900" y="470" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="620" y="430" />
+              <mxPoint x="440" y="430" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-103" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.301;exitY=0.001;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.484;entryY=1.012;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-84" target="BmttCFs_K1xAuYzUHSLz-18">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="189" y="470" as="sourcePoint" />
+            <mxPoint x="349" y="470" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="XnVSaR7xRqF0c78tSIC_-1" value="package : shoppingList" style="swimlane;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
+          <mxGeometry x="1500" y="500" width="300" height="390" as="geometry" />
+        </mxCell>
+        <mxCell id="XnVSaR7xRqF0c78tSIC_-2" value="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=#fff2cc;strokeColor=#d6b656;" parent="XnVSaR7xRqF0c78tSIC_-1" vertex="1">
           <mxGeometry x="30" y="40" width="240" height="330" as="geometry" />
         </mxCell>
         <mxCell id="XnVSaR7xRqF0c78tSIC_-3" value="&lt;div&gt;- log : Logger&lt;/div&gt;&lt;div&gt;- recipeManager : RecipeManager&lt;/div&gt;&lt;div&gt;- list : Map&amp;lt;String, Boolean&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
@@ -519,10 +669,10 @@
         <mxCell id="XnVSaR7xRqF0c78tSIC_-5" value="&lt;div&gt;+ AhoppingList(RecipeManager recipeManager)&lt;/div&gt;&lt;div&gt;+ShoppingList(Map&amp;lt;String, Boolean&amp;gt; shoppingListMap, RecipeManager recipeManager)&lt;/div&gt;&lt;div&gt;+ clear()&lt;/div&gt;&lt;div&gt;+ addToShoppingList(Ingredient ingredient)&lt;/div&gt;&lt;div&gt;+addToShoppingList(String key)&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ addAllToShoppingList(Recipe recipe)&lt;/div&gt;&lt;div&gt;+ flipStatus(Ingredient in)&lt;/div&gt;&lt;div&gt;+ flipStatus(String key)&lt;/div&gt;&lt;div&gt;+ removeAllBought()&lt;/div&gt;&lt;div&gt;+getList() : Map&amp;lt;String, boolean&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;br&gt;&lt;/div&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="XnVSaR7xRqF0c78tSIC_-2" vertex="1">
           <mxGeometry y="98" width="240" height="232" as="geometry" />
         </mxCell>
-        <mxCell id="xz0VCGe2YetrdaeYra_O-1" value="package : mealPlan" style="swimlane;whiteSpace=wrap;html=1;" parent="1" vertex="1">
-          <mxGeometry x="1250" y="414" width="400" height="426" as="geometry" />
+        <mxCell id="xz0VCGe2YetrdaeYra_O-1" value="package : mealPlan" style="swimlane;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
+          <mxGeometry x="1180" y="900" width="400" height="426" as="geometry" />
         </mxCell>
-        <mxCell id="xz0VCGe2YetrdaeYra_O-2" value="MealPlan" 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=#ffe6cc;strokeColor=#d79b00;" parent="xz0VCGe2YetrdaeYra_O-1" vertex="1">
+        <mxCell id="xz0VCGe2YetrdaeYra_O-2" value="MealPlan" 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=#fff2cc;strokeColor=#d6b656;" parent="xz0VCGe2YetrdaeYra_O-1" vertex="1">
           <mxGeometry x="20" y="39" width="360" height="330" as="geometry" />
         </mxCell>
         <mxCell id="xz0VCGe2YetrdaeYra_O-3" value="&lt;div&gt;- plan : Map &amp;lt;LocateDate, String &amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;- RecipeManager : recipemanager&lt;/div&gt;&lt;div&gt;- log : Logger&lt;/div&gt;&lt;/div&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="xz0VCGe2YetrdaeYra_O-2" vertex="1">
@@ -534,85 +684,8 @@
         <mxCell id="xz0VCGe2YetrdaeYra_O-5" value="&lt;div&gt;+ MealPlan(Map&amp;lt;LoalDate, String&amp;gt; plan, RecipeManager recipeManager) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ MealPlan(RecipeManager recipeManager) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ addRecipeToMealPlan(Recipe recipe, LocalDate date) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ addRecipeToMealPlan()Recipe recipe, LocalDate date)&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ clear(LocateDate date) &lt;br&gt;&lt;/div&gt;&lt;div&gt;+ clear()&lt;/div&gt;&lt;div&gt;+ getRecipeCodeForDay(LocalDate date) : optional&amp;lt;String&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ getAllRecipiesFromPlan() : Map&amp;gt;LocalDate, String&amp;gt;&lt;/div&gt;&lt;div&gt;+ getAllRecipiesFromPlan() :Map&amp;gt;LocalDate, String&amp;gt;&lt;/div&gt;&lt;div&gt;+ removePastRecipies()&lt;/div&gt;&lt;div&gt;+ getNutritionTable(LocalDate date) : NutritionTable&lt;br&gt;&lt;/div&gt;&lt;div&gt;- isDateValid(LocalDate date) : boolean&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean &lt;br&gt;&lt;/div&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="xz0VCGe2YetrdaeYra_O-2" vertex="1">
           <mxGeometry y="98" width="360" height="232" as="geometry" />
         </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-5" value="Singleton : App" 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=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
-          <mxGeometry x="1232" y="50" width="420" height="294" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-39" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.249;entryY=1.012;entryDx=0;entryDy=0;entryPerimeter=0;" parent="lNXn1_JIS0mlgrxrveIr-5" target="XnVSaR7xRqF0c78tSIC_-5" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="98" as="sourcePoint" />
-            <mxPoint x="144.72000000000025" y="-458.41200000000015" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="98" y="-63" />
-              <mxPoint x="138" y="-63" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-6" value="- recipeManager : RecipeManager" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="26" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-10" value="- shoppingList : ShoppingList&lt;br&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="52" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-11" value="- mealPlan : MealPlan" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="78" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-1" value="- search : RecipeSearch" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="104" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-3" value="- lastSearchResults : List&amp;lt;Recipe&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="130" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-15" value="- fileManager : FileManager" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="156" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-7" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="182" width="420" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="lNXn1_JIS0mlgrxrveIr-8" value="+ start() : void" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="190" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-2" value="+ search(lastSearchResults, String query) : ArrayList&amp;lt;Recipe&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="216" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="h23uL9lWt6JHxaophjVK-4" value="+ search(lastSearchResults, Category category) : ArrayList&amp;lt;Recipe&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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="242" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="BmttCFs_K1xAuYzUHSLz-9" value="+ save(this) : void" 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="lNXn1_JIS0mlgrxrveIr-5" vertex="1">
-          <mxGeometry y="268" width="420" height="26" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-32" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=1;entryY=0.11;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.004;exitY=0.051;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="h23uL9lWt6JHxaophjVK-1" target="1PDsnecl4zy3zphxMVey-1" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="1210" y="160" as="sourcePoint" />
-            <mxPoint x="1360" y="140" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="1190" y="155" />
-              <mxPoint x="1190" y="100" />
-              <mxPoint x="1160" y="100" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-37" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.305;exitY=0.969;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="BmttCFs_K1xAuYzUHSLz-9" target="xz0VCGe2YetrdaeYra_O-2" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="1310" y="370" as="sourcePoint" />
-            <mxPoint x="1470" y="370" as="targetPoint" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-43" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="BmttCFs_K1xAuYzUHSLz-15" edge="1">
-          <mxGeometry x="-1" y="3" relative="1" as="geometry">
-            <mxPoint x="1690" y="220" as="sourcePoint" />
-            <mxPoint x="1920" y="200" as="targetPoint" />
-            <Array as="points">
-              <mxPoint x="1920" y="219" />
-            </Array>
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-44" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-43" vertex="1" connectable="0">
-          <mxGeometry x="0.7682" y="-1" relative="1" as="geometry">
-            <mxPoint y="-10" as="offset" />
-          </mxGeometry>
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-3" value="Package Components " style="swimlane;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
-          <mxGeometry x="-760" y="-660" width="620" height="470" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-3" value="Package Components " style="swimlane;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1">
+          <mxGeometry x="440" y="-550" width="620" height="470" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-22" value="Componetens for JavaFX files to use " style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3">
           <mxGeometry x="40" y="30" width="160" height="30" as="geometry" />
@@ -689,14 +762,56 @@
         <mxCell id="UTPdYlRnybRvfPgnSFpF-47" value="+ IngredientSearchResultLabel : RecipeComponent component" 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="UTPdYlRnybRvfPgnSFpF-44">
           <mxGeometry y="68" width="180" height="52" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-57" value="Exceptions" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="-760" y="-130" width="200" height="200" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-57" value="Exceptions" style="swimlane;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
+          <mxGeometry x="-760" y="500" width="380" height="490" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-71" value="InvalidIngredientException" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-57">
+          <mxGeometry x="20" y="150" width="340" height="60" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-58" value="Controller" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="-530" y="-130" width="200" height="200" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-73" 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;" vertex="1" parent="V3HS-9MRJcJGyJpxUQXu-71">
+          <mxGeometry y="26" width="340" height="8" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-59" value="File System" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
-          <mxGeometry x="1770" y="-290" width="420" height="770" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-74" value="+ InvalidIngredientException(String message)" 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="V3HS-9MRJcJGyJpxUQXu-71">
+          <mxGeometry y="34" width="340" height="26" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-75" value="InvalidMealPlanException" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-57">
+          <mxGeometry x="20" y="327" width="340" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-77" 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;" vertex="1" parent="V3HS-9MRJcJGyJpxUQXu-75">
+          <mxGeometry y="26" width="340" height="8" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-78" value="+ InvalidMealPlanExpection(String message) " 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="V3HS-9MRJcJGyJpxUQXu-75">
+          <mxGeometry y="34" width="340" height="26" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-83" value="InvalidRecipeExpection" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-57">
+          <mxGeometry x="20" y="230" width="340" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-85" 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;" vertex="1" parent="V3HS-9MRJcJGyJpxUQXu-83">
+          <mxGeometry y="26" width="340" height="8" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-86" value="+ InvalidRecipeException(String message)" 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="V3HS-9MRJcJGyJpxUQXu-83">
+          <mxGeometry y="34" width="340" height="26" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-67" value="InvalidCategoryException" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-57">
+          <mxGeometry x="20" y="410" width="340" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-69" 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;" vertex="1" parent="V3HS-9MRJcJGyJpxUQXu-67">
+          <mxGeometry y="26" width="340" height="8" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-70" value="+ InvalidCategoryException(String message) " 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="V3HS-9MRJcJGyJpxUQXu-67">
+          <mxGeometry y="34" width="340" height="26" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-79" value="InvalidNutritionTableExpection" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-57">
+          <mxGeometry x="20" y="50" width="340" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-81" 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;" vertex="1" parent="V3HS-9MRJcJGyJpxUQXu-79">
+          <mxGeometry y="26" width="340" height="8" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-82" value="+ InvalidNutritionTableExeptionIString message)" 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="V3HS-9MRJcJGyJpxUQXu-79">
+          <mxGeometry y="34" width="340" height="26" as="geometry" />
+        </mxCell>
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-59" value="File System" style="swimlane;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1">
+          <mxGeometry x="1120" y="-550" width="420" height="770" as="geometry" />
         </mxCell>
         <mxCell id="BmttCFs_K1xAuYzUHSLz-11" value="FileManager" 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="UTPdYlRnybRvfPgnSFpF-59" vertex="1">
           <mxGeometry x="20" y="50" width="360" height="430" as="geometry" />
@@ -710,23 +825,8 @@
         <mxCell id="BmttCFs_K1xAuYzUHSLz-14" value="&lt;div&gt;+ serializedToFile(TastyPages app)&lt;/div&gt;&lt;div&gt;+ deserializedFromFilesystem() : TastyPages&lt;/div&gt;&lt;div&gt;- deserializedIngredientsManager(String path) : IngredientManager&lt;/div&gt;&lt;div&gt;- serializedIngredientManager(IngredientManager ingredientManager, Path path) &lt;br&gt;&lt;/div&gt;&lt;div&gt;- deserializedRecipeManager(Path path) : RecipeManager&lt;/div&gt;&lt;div&gt;- serializedTecipeManager(RecipeManager recipemanager, Path path) &lt;br&gt;&lt;/div&gt;&lt;div&gt;- deserializedCategoryManager(String json) : CategoryManager&lt;/div&gt;&lt;div&gt;- serializedcategoryManager(CategoryManager categoryManager, Path path)&lt;/div&gt;&lt;div&gt;- deserializedMealPlan(String json, RecipeManager recipeManager) : MealPlan&lt;/div&gt;&lt;div&gt;- serializedMealPlan(Mealplan mealplan, Path path)&lt;/div&gt;&lt;div&gt;- deserializedShoppingList(String json, RecipeManager recipeManager) : ShoppingList&lt;br&gt;&lt;/div&gt;&lt;div&gt;- serializedShoppingList(ShoppingList shoppingList, RecipeManager recipeManager, Path path)&lt;/div&gt;&lt;div&gt;- recipeToJSON(Recipe recipe) : String&lt;/div&gt;&lt;div&gt;- ingredientToCSV(Ingredient ingredient) : String&lt;/div&gt;&lt;div&gt;- JSONtoRecipe(String json) : Recipe&lt;/div&gt;&lt;div&gt;+ getAbsolutePathFromResourceFolder(String p) : String&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="BmttCFs_K1xAuYzUHSLz-11" vertex="1">
           <mxGeometry y="88" width="360" height="342" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-60" value="helpers" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
-          <mxGeometry x="-530" y="130" width="200" height="200" as="geometry" />
-        </mxCell>
-        <mxCell id="1PDsnecl4zy3zphxMVey-1" value="RecipeSearch" 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=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
-          <mxGeometry x="730" y="-310" width="300" height="250" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-26" value="&lt;div&gt;- log : Logger&lt;br&gt;&lt;/div&gt;&lt;div&gt;- recipeManager : RecipeManager&lt;/div&gt;&lt;div&gt;- ingredientManager : IngredientManager&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <mxGeometry y="26" width="300" height="54" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-27" 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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <mxGeometry y="80" width="300" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="ev62EXm1IyDULqRkRese-28" value="&lt;div&gt;+ RecipeSearch(RecipeManager recipemanager, IngredientManager ingredientManager)&lt;/div&gt;&lt;div&gt;+ searchByQuery(List&amp;lt;Recipe&amp;gt; recipeToSearch, String query) : List&amp;lt;Recipe&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ searchByCategory(List&amp;lt;Recipe&amp;gt; recipeToSearch, List&amp;lt;Category&amp;gt; categoryToSearch) : List&amp;lt;Recipe&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ searchTroughNames(String query) : List&amp;lt;RecipeComponent&amp;gt;&lt;/div&gt;&lt;div&gt;- containsAnyToken(String input, RecipeComponent component) : boolean&lt;br&gt;&lt;/div&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="1PDsnecl4zy3zphxMVey-1" vertex="1">
-          <mxGeometry y="88" width="300" height="162" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-95" value="CSVParser" 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;" vertex="1" parent="1">
-          <mxGeometry x="1790" y="244" width="380" height="220" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-95" value="CSVParser" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-59">
+          <mxGeometry x="20" y="535" width="380" height="220" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-96" value="- log : Logger" 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="UTPdYlRnybRvfPgnSFpF-95">
           <mxGeometry y="26" width="380" height="34" as="geometry" />
@@ -737,8 +837,8 @@
         <mxCell id="UTPdYlRnybRvfPgnSFpF-98" value="&lt;div&gt;+ getIngredientFromCSV(String filepath, char split, String ... extract) : List&amp;lt;Ingredient&amp;gt;&lt;/div&gt;&lt;div&gt;- getIngredientFromLine(String line, char split, int[] idx) : Ingredient&lt;/div&gt;&lt;div&gt;- getColumnIndexes(String header, char splitChar, String ... extract) : int[]&lt;/div&gt;&lt;div&gt;- firstOccurenceOf(T[] arr, T element) : &amp;lt;T&amp;gt;&lt;/div&gt;&lt;div&gt;- parseNumberFromString(String candidate) : double&lt;/div&gt;&lt;div&gt;- getMeasurementFromString(String candidate) : String&lt;/div&gt;&lt;div&gt;- splitLine(String line, char splitChar) : List&amp;lt;String&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-95">
           <mxGeometry y="70" width="380" height="150" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-100" value="TypeAdapters" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
-          <mxGeometry x="-1169" y="170" width="570" height="710" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-100" value="TypeAdapters" style="swimlane;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1">
+          <mxGeometry x="-920" y="-490" width="570" height="710" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-101" value="CategoryManagerTypeAdapter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100">
           <mxGeometry x="25" y="50" width="250" height="110" as="geometry" />
@@ -804,7 +904,7 @@
           <mxGeometry y="68" width="245" height="62" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-123" value="ShoppingListTypeAdapter" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100">
-          <mxGeometry x="25" y="530" width="252.5" height="160" as="geometry" />
+          <mxGeometry x="297.5" y="526" width="252.5" height="160" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-124" value="- recipeManager : RecipeManager" 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="UTPdYlRnybRvfPgnSFpF-123">
           <mxGeometry y="26" width="252.5" height="26" as="geometry" />
@@ -815,20 +915,8 @@
         <mxCell id="UTPdYlRnybRvfPgnSFpF-126" value="&lt;div&gt;+ ShoppingListTypeAdapter(RecipeManager recipeManager)&lt;/div&gt;&lt;div&gt;+ @Override write(JsonWriter writer, ShoppingList shoppingList)&lt;/div&gt;&lt;div&gt;+ @Override read(JsonReader reader) : ShoppingList&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-123">
           <mxGeometry y="60" width="252.5" height="100" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-128" value="Conf" 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=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
-          <mxGeometry x="170" y="-720" width="370" height="120" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-129" value="&lt;div&gt;- BUNDLE_NAME : String&lt;/div&gt;&lt;div&gt;- RESOURCE_BUNDLE : String&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-128">
-          <mxGeometry y="26" width="370" height="44" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-130" 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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-128">
-          <mxGeometry y="70" width="370" height="8" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-131" value="&lt;div&gt;- Conf()&lt;/div&gt;&lt;div&gt;+ get(String key) : String&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-128">
-          <mxGeometry y="78" width="370" height="42" as="geometry" />
-        </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-132" value="GUIDriver" 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=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
-          <mxGeometry x="170" y="-570" width="370" height="220" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-132" value="GUIDriver" 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=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1">
+          <mxGeometry x="-138" y="-392" width="370" height="220" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-133" value="&lt;div&gt;- log : Logger&lt;/div&gt;&lt;div&gt;- STARTUP_VIEW : View&lt;/div&gt;&lt;div&gt;- PATH_TO_ICON : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;- stage : Stage&lt;/div&gt;&lt;div&gt;- model : TastyPages&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-132">
           <mxGeometry y="26" width="370" height="84" as="geometry" />
@@ -839,8 +927,8 @@
         <mxCell id="UTPdYlRnybRvfPgnSFpF-135" value="&lt;div&gt;+ main(String[] args)&lt;/div&gt;&lt;div&gt;+ getModel() : TastyPages&lt;/div&gt;&lt;div&gt;+ getApplicationSatge() : Stage&lt;/div&gt;&lt;div&gt;+ getStartUpView() : View&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override start(Stage stage)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-132">
           <mxGeometry y="118" width="370" height="102" as="geometry" />
         </mxCell>
-        <mxCell id="UTPdYlRnybRvfPgnSFpF-136" value="TastyPages" 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=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
-          <mxGeometry x="580" y="-690" width="320" height="310" as="geometry" />
+        <mxCell id="UTPdYlRnybRvfPgnSFpF-136" value="TastyPages" 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=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
+          <mxGeometry x="1120" y="280" width="320" height="310" as="geometry" />
         </mxCell>
         <mxCell id="UTPdYlRnybRvfPgnSFpF-137" value="&lt;div&gt;- recipeManager : RecipeManager&lt;/div&gt;&lt;div&gt;- ingredientManager : IngredientManager &lt;br&gt;&lt;/div&gt;&lt;div&gt;- shoppingList : ShoppingList&lt;/div&gt;&lt;div&gt;- categoryManager : CategoryManager&lt;/div&gt;&lt;div&gt;- mealPlan : MealPlan&lt;/div&gt;&lt;div&gt;- log : Logger&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-136">
           <mxGeometry y="26" width="320" height="94" as="geometry" />
@@ -851,17 +939,97 @@
         <mxCell id="UTPdYlRnybRvfPgnSFpF-139" value="&lt;div&gt;+ TastyPages(RecipeManager recipeManager, IngredientManager ingredientManager, CategoryManager categoryManager, MealPlan mealPla, ShoppingList shoppingList)&lt;/div&gt;&lt;div&gt;+ TastyPages(IngredientManager ingredientManager)&lt;/div&gt;&lt;div&gt;+ TastyPages()&lt;/div&gt;&lt;div&gt;+ getRecipeManager() : RecipeManager&lt;/div&gt;&lt;div&gt;+ getIngredientManager() : IngredientManager&lt;/div&gt;&lt;div&gt;+ getShoppingList() : ShoppingList&lt;/div&gt;&lt;div&gt;+ getCategoryManager() : CategoryManager&lt;/div&gt;&lt;div&gt;+ getMealPlan() : MealPlan&lt;/div&gt;&lt;div&gt;+ createRecipe()&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-136">
           <mxGeometry y="128" width="320" height="182" 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;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
-          <mxGeometry x="470" y="-240" width="245" height="230" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-38" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;dashed=1;endFill=1;entryX=1.011;entryY=0.075;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UTPdYlRnybRvfPgnSFpF-139" target="khY43H2GbW4oralui55t-9">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="410" y="850" as="sourcePoint" />
+            <mxPoint x="460" y="800" as="targetPoint" />
+            <Array as="points" />
+          </mxGeometry>
         </mxCell>
-        <mxCell id="4db8lyx7makHAff3xmPV-2" value="&lt;div&gt;- code : Integer&lt;/div&gt;&lt;div&gt;- name : String&lt;/div&gt;&lt;div&gt;- colourCode : String &lt;br&gt;&lt;/div&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-1" vertex="1">
-          <mxGeometry y="26" width="245" height="54" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-41" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.915;entryY=-0.001;entryDx=0;entryDy=0;exitX=0.001;exitY=0.174;exitDx=0;exitDy=0;dashed=1;entryPerimeter=0;exitPerimeter=0;" edge="1" parent="1" source="UTPdYlRnybRvfPgnSFpF-139" target="UTPdYlRnybRvfPgnSFpF-76">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="440" y="430" as="sourcePoint" />
+            <mxPoint x="490" y="380" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="430" y="440" />
+            </Array>
+          </mxGeometry>
         </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="80" width="245" height="8" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-46" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.063;exitDx=0;exitDy=0;exitPerimeter=0;dashed=1;entryX=0.088;entryY=0.001;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UTPdYlRnybRvfPgnSFpF-139" target="XnVSaR7xRqF0c78tSIC_-2">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="950" y="600" as="sourcePoint" />
+            <mxPoint x="1000" y="550" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="1550" y="420" />
+            </Array>
+          </mxGeometry>
         </mxCell>
-        <mxCell id="4db8lyx7makHAff3xmPV-4" value="&lt;div&gt;+ Category(String name, int colourName)&lt;/div&gt;&lt;div&gt;+ Category(String name, String colourName, int code)&lt;/div&gt;&lt;div&gt;+ getColourCode() : String&lt;/div&gt;&lt;div&gt;+ getName() : String&amp;nbsp;&lt;/div&gt;&lt;div&gt;+ getCode() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;+ @Override equals(Object o) : boolean&lt;/div&gt;&lt;div&gt;+ @Override toString() : String&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&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-1" vertex="1">
-          <mxGeometry y="88" width="245" height="142" as="geometry" />
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-51" value="&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="endArrow=block;endFill=1;html=1;align=left;verticalAlign=top;rounded=0;exitX=0.626;exitY=1.003;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.353;entryY=-0.005;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;" edge="1" parent="1" source="UTPdYlRnybRvfPgnSFpF-139" target="xz0VCGe2YetrdaeYra_O-1">
+          <mxGeometry x="-1" relative="1" as="geometry">
+            <mxPoint x="1550" y="860" as="sourcePoint" />
+            <mxPoint x="1450" y="940" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-88" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=0.539;exitY=1.103;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.527;entryY=1.003;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;dashPattern=8 8;" edge="1" parent="1" source="V3HS-9MRJcJGyJpxUQXu-70" target="4db8lyx7makHAff3xmPV-4">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="-730" y="1040" as="sourcePoint" />
+            <mxPoint x="300" y="1420" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="-560" y="1400" />
+              <mxPoint x="300" y="1400" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-89" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=-0.002;exitY=0.212;exitDx=0;exitDy=0;dashed=1;dashPattern=8 8;exitPerimeter=0;" edge="1" parent="1" source="V3HS-9MRJcJGyJpxUQXu-75">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="-360" y="590" as="sourcePoint" />
+            <mxPoint x="1320" y="1330" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="-790" y="840" />
+              <mxPoint x="-790" y="1420" />
+              <mxPoint x="1320" y="1420" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-90" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=0.999;exitY=0.337;exitDx=0;exitDy=0;entryX=0;entryY=0.628;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;dashPattern=8 8;exitPerimeter=0;" edge="1" parent="1" source="V3HS-9MRJcJGyJpxUQXu-83" target="UTPdYlRnybRvfPgnSFpF-85">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="-560" y="370" as="sourcePoint" />
+            <mxPoint x="-330" y="370" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-91" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=0.01;entryY=0.656;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;dashPattern=8 8;" edge="1" parent="1" source="V3HS-9MRJcJGyJpxUQXu-71" target="UTPdYlRnybRvfPgnSFpF-73">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="-390" y="540" as="sourcePoint" />
+            <mxPoint x="-350" y="280" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="-360" y="650" />
+              <mxPoint x="-360" y="347" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-93" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;dashed=1;dashPattern=8 8;exitX=0.847;exitY=-0.002;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.228;entryY=0.002;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="V3HS-9MRJcJGyJpxUQXu-79" target="4LD2Q_2ablrLRUKtAQnm-12">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="-830" y="380" as="sourcePoint" />
+            <mxPoint x="390" y="10" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="-450" y="260" />
+              <mxPoint x="-220" y="260" />
+              <mxPoint x="-220" />
+              <mxPoint x="310" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-97" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
+          <mxGeometry x="1175" y="647" width="170" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="V3HS-9MRJcJGyJpxUQXu-57" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;entryX=1.003;entryY=0.51;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="khY43H2GbW4oralui55t-12">
+          <mxGeometry width="160" relative="1" as="geometry">
+            <mxPoint x="1500" y="659" as="sourcePoint" />
+            <mxPoint x="1040" y="660" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="1120" y="660" />
+            </Array>
+          </mxGeometry>
         </mxCell>
       </root>
     </mxGraphModel>