diff --git a/src/main/java/mi/hdm/App.java b/src/main/java/mi/hdm/App.java
deleted file mode 100644
index 43db04632139b985df84c358558c0355962440c3..0000000000000000000000000000000000000000
--- a/src/main/java/mi/hdm/App.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package mi.hdm;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-public class App {
-    private final static Logger log = LogManager.getLogger(App.class);
-
-    public static void main(String[] args) {
-        log.info("Starting app");
-    }
-
-    public void save() {}
-}
diff --git a/src/main/java/mi/hdm/FileManager.java b/src/main/java/mi/hdm/FileManager.java
index 3367bc51e497808f070613c146c5afd36fa7fb62..fc94da980179a58738bd2a1b9b7f19e486ffaede 100644
--- a/src/main/java/mi/hdm/FileManager.java
+++ b/src/main/java/mi/hdm/FileManager.java
@@ -7,7 +7,7 @@ public class FileManager {
         return fileManager;
     }
 
-    public void serializeToFile(App app) {}
+    public void serializeToFile(TastyPages app) {}
 
-    public App deserializeFromFile(String filepath) { return null; }
+    public TastyPages deserializeFromFile(String filepath) { return null; }
 }
diff --git a/src/main/java/mi/hdm/TastyPages.java b/src/main/java/mi/hdm/TastyPages.java
new file mode 100644
index 0000000000000000000000000000000000000000..af8ab30bcfc0effef3596cfa3daec0c3d1562fcd
--- /dev/null
+++ b/src/main/java/mi/hdm/TastyPages.java
@@ -0,0 +1,33 @@
+package mi.hdm;
+
+import javafx.application.Application;
+import javafx.scene.Scene;
+import javafx.scene.layout.GridPane;
+import javafx.stage.Stage;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class TastyPages extends Application {
+    private final static Logger log = LogManager.getLogger(TastyPages.class);
+
+    public static void main(String[] args) {
+        log.info("Starting TastyPages");
+        launch(args);
+    }
+
+
+
+    public void save() {}
+
+    @Override
+    public void start(Stage stage) throws Exception {
+        final GridPane gridPane = new GridPane();
+        final Scene scene = new Scene(gridPane, 1400, 800);
+        //scene.getStylesheets().add("/styles/styles.css");
+
+        stage.setTitle("Start page");
+        stage.setMaximized(true); //open scene in full screen
+        stage.setScene(scene);
+        stage.show();
+    }
+}
diff --git a/src/main/java/mi/hdm/mealPlan/MealPlan.java b/src/main/java/mi/hdm/mealPlan/MealPlan.java
index 29ab90f07a747aa2b1f2eb59afeead8a14ffc0fb..bb5e1f199434aeb67662ab8c967e58372c3435dd 100644
--- a/src/main/java/mi/hdm/mealPlan/MealPlan.java
+++ b/src/main/java/mi/hdm/mealPlan/MealPlan.java
@@ -1,28 +1,59 @@
 package mi.hdm.mealPlan;
 
+import mi.hdm.recipes.NutritionCalculator;
 import mi.hdm.recipes.NutritionTable;
 import mi.hdm.recipes.Recipe;
+import mi.hdm.shoppingList.ShoppingList;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.time.LocalDate;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * Allow the user to create a meal plan for the week. The user can check out his nutrition scores for the week.
  */
 public class MealPlan {
-    //TODO: implement class<
+    private static final Logger log = LogManager.getLogger(MealPlan.class);
+    private final Map<LocalDate, Recipe> plan;
     private static final MealPlan mealPlan = new MealPlan();
 
+    private MealPlan () {
+        plan = new HashMap<>();
+    }
+
     public static MealPlan getInstance() {
         return mealPlan;
     }
 
-    public void addRecipeToMealPlan(Recipe recipe, int day) {}
+    public void addRecipeToMealPlan(Recipe recipe, LocalDate date) {
+        plan.put(date, recipe);
+    }
 
-    public void clear(int day) {}
+    public void clear(LocalDate date) {
+        log.info("Day {} cleared successfully.", date);
+        plan.put(date, null);
+    }
+
+    public void clear() {
+        log.info("MealPlan cleared successfully.");
+        plan.clear();
+    }
 
-    public void clear() {}
+    public Recipe getRecipeForDay(LocalDate date) {
 
-    public void getRecipeForDay(int day) {}
 
-    public NutritionTable getNutritionTable() { return null; }
+        return plan.get(date);
+    }
+    public Map<LocalDate, Recipe> getAllRecipesFromPlan () {
+        return plan;
+    }
+
+    public NutritionTable getNutritionTable() {
+
+        return NutritionCalculator.calculateNutritionTable(mealPlan);
+
+    }
 
-    public NutritionTable getNutritionTable(int day) { return null; }
 }
diff --git a/src/main/java/mi/hdm/recipes/NutritionCalculator.java b/src/main/java/mi/hdm/recipes/NutritionCalculator.java
index c10bf68e347bdd59918dccd02720e64f1e623bc1..a68e9bee552fa016c46b25b2de42c89927782cfa 100644
--- a/src/main/java/mi/hdm/recipes/NutritionCalculator.java
+++ b/src/main/java/mi/hdm/recipes/NutritionCalculator.java
@@ -4,6 +4,7 @@ import mi.hdm.mealPlan.MealPlan;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import java.time.LocalDate;
 import java.util.Map;
 
 public class NutritionCalculator {
@@ -31,13 +32,18 @@ public class NutritionCalculator {
         for (RecipeComponent entry : ingredients.keySet()) {
             final Map<Nutrition, Double> nutritionTable = entry.getNutritionTable().getTable();
 
-            //TODO: This doesnt apply if the measurement is PIECE or PINCH! FIX!
-            totalCals += nutritionTable.get(Nutrition.CALORIES) * ingredients.get(entry) / 100;
-            totalCarbs += nutritionTable.get(Nutrition.CARBS) * ingredients.get(entry) / 100;
-            totalFats += nutritionTable.get(Nutrition.FAT) * ingredients.get(entry) / 100;
-            totalProteins += nutritionTable.get(Nutrition.PROTEINS) * ingredients.get(entry) / 100;
-            totalFibers += nutritionTable.get(Nutrition.FIBERS) * ingredients.get(entry) / 100;
-            totalSalt += nutritionTable.get(Nutrition.SALT) * ingredients.get(entry) / 100;
+            int divisor;
+            if (entry.getMeasurement() == Measurement.PIECE || entry.getMeasurement() == Measurement.PINCH) {
+                divisor = 1;
+            } else {
+                divisor = 100;
+            }
+            totalCals += nutritionTable.get(Nutrition.CALORIES) * ingredients.get(entry) / divisor;
+            totalCarbs += nutritionTable.get(Nutrition.CARBS) * ingredients.get(entry) / divisor;
+            totalFats += nutritionTable.get(Nutrition.FAT) * ingredients.get(entry) / divisor;
+            totalProteins += nutritionTable.get(Nutrition.PROTEINS) * ingredients.get(entry) / divisor;
+            totalFibers += nutritionTable.get(Nutrition.FIBERS) * ingredients.get(entry) / divisor;
+            totalSalt += nutritionTable.get(Nutrition.SALT) * ingredients.get(entry) / divisor;
         }
         log.info("NutritionTable calculated successfully.");
         return new NutritionTable(totalCals, totalCarbs, totalFats, totalProteins, totalFibers, totalSalt);
@@ -45,6 +51,27 @@ public class NutritionCalculator {
 
     //TODO: implement calcuating nutrition table from meal plan and List<Recipe>
     public static NutritionTable calculateNutritionTable(MealPlan mealPlan) {
-        return null;
+
+        Map<LocalDate, Recipe> plan = mealPlan.getAllRecipesFromPlan();
+
+        double totalCals = 0,
+                totalCarbs = 0,
+                totalFats = 0,
+                totalProteins = 0,
+                totalFibers = 0,
+                totalSalt = 0;
+
+        for (Recipe r : plan.values()) {
+            final Map<Nutrition, Double> nutritionTable = r.getNutritionTable().getTable();
+            totalCals += nutritionTable.get(Nutrition.CALORIES);
+            totalCarbs += nutritionTable.get(Nutrition.CARBS);
+            totalFats += nutritionTable.get(Nutrition.FAT);
+            totalProteins += nutritionTable.get(Nutrition.PROTEINS);
+            totalFibers += nutritionTable.get(Nutrition.FIBERS);
+            totalSalt += nutritionTable.get(Nutrition.SALT);
+        }
+        log.info("NutritionTable calculated successfully.");
+
+        return new NutritionTable(totalCals, totalCarbs, totalFats, totalProteins, totalFibers, totalSalt);
     }
 }