diff --git a/src/main/java/com/application/DB/Constants.java b/src/main/java/com/application/DB/Constants.java
index ed2b28a7a2b93ac7805c5a478d46a44ae0cce66e..ccb1facb19eda28314facb4e06f8ae58fd4cfe11 100644
--- a/src/main/java/com/application/DB/Constants.java
+++ b/src/main/java/com/application/DB/Constants.java
@@ -16,26 +16,15 @@ public final class Constants {
     }
 
     // Today's date
-    public static final String CURRENT_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
+    public static String CURRENT_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
 
-    // Start- & end time
-    public static String START_TIME = "";
-    public static String STOP_TIME = "";
-
-    // Boolean variable to tell if the drying process is finished
-    public static boolean IS_FINISHED = false;
-
-    // User inputs
-    public static String TREE_SPECIES = "";
-    public static  String DIMENSIONS = "";
-    public static  String SAWSET = "";
-    public static  String MOISTURE_GOAL = "";
+    public static String TIME_LEFT = "";
 
     // Number of manual moisture checks
     public static int NUMBER_OF_CHECKS = 1;
 
     // Number of wanted drying periods
-    public static int NUMBER_OF_PERIODS = 1;
+    public static int NUMBER_OF_PERIODS = 2;
 
     // Number of seconds to wait before updating live data, in seconds
     public static int NUMBER_OF_SECONDS_LIVE_DATA = 10;
diff --git a/src/main/java/com/application/DB/DB.java b/src/main/java/com/application/DB/DB.java
index 3b0936d87144e8e6ed07c3435a08fc418b7e88e7..42574d67d24a06ba2c196f62e5ef95b8feda1521 100644
--- a/src/main/java/com/application/DB/DB.java
+++ b/src/main/java/com/application/DB/DB.java
@@ -6,6 +6,8 @@ import org.joda.time.DateTime;
 import java.util.*;
 
 import static com.application.DB.Constants.*;
+import static com.application.DB.HelpingFunctions.IS_FINISHED;
+import static com.application.DB.HelpingFunctions.getNoOfChambers;
 
 /**
  * This class is responsible for handling database related activities
@@ -25,7 +27,8 @@ public class DB {
         //getKwh();
         //getName();
         //getZeroPointDate();
-        System.out.println(setInputParameters());
+        //System.out.println(setInputParameters());
+        getNoOfChambers();
 
     }
 
@@ -70,6 +73,9 @@ public class DB {
         String valueIDName;
         int valueID;
 
+        getNoOfChambers();
+        int chamberNo = 1;
+
 
         while(true){
 
@@ -91,16 +97,16 @@ public class DB {
 
                 if (location.getKey() == 124) {
                     // If location is Valasen, then the database stores furu as fura, swedish.
-                    if (TREE_SPECIES.equalsIgnoreCase("Furu")) {
-                        TREE_SPECIES = "Fura";
+                    if (HelpingFunctions.TREE_SPECIES.equalsIgnoreCase("Furu")) {
+                        HelpingFunctions.TREE_SPECIES = "Fura";
                     }
                     locationTables = getValasenTableNames();
                     valmeticsChamberIDS = getValasenValmeticsChamberIDS();
                     kwhChamberIDS = getValasenKwhChamberIDS();
                 }
                 if (location.getKey() == 174) {
-                    if (TREE_SPECIES.equalsIgnoreCase("Fura")) {
-                        TREE_SPECIES = "Furu";
+                    if (HelpingFunctions.TREE_SPECIES.equalsIgnoreCase("Fura")) {
+                        HelpingFunctions.TREE_SPECIES = "Furu";
                     }
                     locationTables = getArjangTableNames();
                     valmeticsChamberIDS = getArjangValmeticsChamberIDS();
@@ -124,33 +130,33 @@ public class DB {
                 //valueID = Integer.parseInt(location.getValue().get(locationTables.get("Kwh")).get("ValueID"));
 
 
-                System.out.printf("Tree species: \t%s\n", TREE_SPECIES);
-                System.out.printf("Width: \t\t\t%s\n", DIMENSIONS);
-                System.out.printf("Sawset: \t\t%s\n", SAWSET);
-                System.out.printf("Moisture: \t\t%s\n", MOISTURE_GOAL);
+                System.out.printf("Tree species: \t%s\n", HelpingFunctions.TREE_SPECIES);
+                System.out.printf("Width: \t\t\t%s\n", HelpingFunctions.DIMENSIONS);
+                System.out.printf("Sawset: \t\t%s\n", HelpingFunctions.SAWSET);
+                System.out.printf("Moisture: \t\t%s\n", HelpingFunctions.MOISTURE_GOAL);
 
 
                 // Defining the extra sql statements for extra parameters
-                treeSpecies = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + TREE_SPECIES + "%" + '"' + ") ";
-                dimensions = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + DIMENSIONS + "%" + '"' + ") ";
-                sawset = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + SAWSET + "%" + '"' + ") ";
-                moistureGoal = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + MOISTURE_GOAL + "\\\\%" + "%" + '"' + ") ";
+                treeSpecies = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + HelpingFunctions.TREE_SPECIES + "%" + '"' + ") ";
+                dimensions = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + HelpingFunctions.DIMENSIONS + "%" + '"' + ") ";
+                sawset = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + HelpingFunctions.SAWSET + "%" + '"' + ") ";
+                moistureGoal = "AND LOWER(" + nameParameter + ") LIKE LOWER(" + '"' + "%" + HelpingFunctions.MOISTURE_GOAL + "\\\\%" + "%" + '"' + ") ";
 
 
                 // 1. Checking if user input is empty.
                 // 2. Checking if the extraInputParameter variable already contains the extra parameters,
                 //    if so not adding a second time.
                 // 3. Checking if the while loop have previously removed the parameter, if so, not adding again.
-                if (!TREE_SPECIES.isEmpty() && !extraInputParameter.contains(treeSpecies) && !treespeciesRemoved) {
+                if (!HelpingFunctions.TREE_SPECIES.isEmpty() && !extraInputParameter.contains(treeSpecies) && !treespeciesRemoved) {
                     extraInputParameter += treeSpecies;
                 }
-                if (!DIMENSIONS.isEmpty() && !extraInputParameter.contains(dimensions) && !dimensionsRemoved) {
+                if (!HelpingFunctions.DIMENSIONS.isEmpty() && !extraInputParameter.contains(dimensions) && !dimensionsRemoved) {
                     extraInputParameter += dimensions;
                 }
-                if (!SAWSET.isEmpty() && !extraInputParameter.contains(sawset) && !sawsetRemoved) {
+                if (!HelpingFunctions.SAWSET.isEmpty() && !extraInputParameter.contains(sawset) && !sawsetRemoved) {
                     extraInputParameter += sawset;
                 }
-                if (!MOISTURE_GOAL.isEmpty() && !extraInputParameter.contains(moistureGoal) && !moistureRemoved) {
+                if (!HelpingFunctions.MOISTURE_GOAL.isEmpty() && !extraInputParameter.contains(moistureGoal) && !moistureRemoved) {
                     extraInputParameter += moistureGoal;
                 }
 
@@ -172,6 +178,7 @@ public class DB {
                     System.out.printf("valueID: \t%d\n",valueID);
 
                 //System.out.println("Før results");
+
                 Map<Integer, Map<String, Number>> results = new TreeMap<>(getKwh(getZeroPointDate(locationID, extraInputParameter, nameParameter, kilinName, kilinID, startDryingTime, stopDryingTime, valmeticsTableName, limit),
                         locationID, kwhTableName, KwhName, timestamp, valueIDName, valueID, index));
 
@@ -560,11 +567,47 @@ public class DB {
     }
 
 
-    public static void pushManMoisture(String moisture, boolean finished) throws Exception {
+    public static void pushManMoisture(String moisture) throws Exception {
+
+        String startTime = null;
+        String stopTime = null;
+        String treeSpecies;
+        String dimensions;
+        String sawset;
+        String moistureGoal;
+
+        // Checks if variables is not null, if so, formats correctly for the sql statement
+        if(!HelpingFunctions.START_TIME.equals("")){
+            startTime = '"'+ HelpingFunctions.START_TIME+'"';
+        }
+        if(HelpingFunctions.STOP_TIME != null){
+            stopTime = '"'+ HelpingFunctions.STOP_TIME+'"';
+        }
+        if(!HelpingFunctions.TREE_SPECIES.equals("")){
+            treeSpecies = '"'+ HelpingFunctions.TREE_SPECIES+'"';
+        } else {
+            treeSpecies = null;
+        }
+        if(!HelpingFunctions.DIMENSIONS.equals("")){
+            dimensions = '"'+ HelpingFunctions.DIMENSIONS+'"';
+        } else {
+            dimensions = null;
+        }
+        if(!HelpingFunctions.SAWSET.equals("")){
+            sawset = '"'+ HelpingFunctions.SAWSET+'"';
+        } else {
+            sawset = null;
+        }
+        if(!HelpingFunctions.MOISTURE_GOAL.equals("")){
+            moistureGoal = '"'+ HelpingFunctions.MOISTURE_GOAL+'"';
+        } else {
+            moistureGoal = null;
+        }
+
         // Sqlstatement
         final String sqlStatement =
-                "INSERT INTO " + PROJECT_ID + "." + LOCATION_ID + "." + MAN_MOISTURE_TABLE + "(moisture,tree_species,dimensions,sawset,moisture_goal,no_moisture_checkstart_time,start_time,stop_time,finished) " +
-                        "VALUES("+moisture+","+TREE_SPECIES+","+DIMENSIONS+","+SAWSET+","+MOISTURE_GOAL+","+NUMBER_OF_CHECKS+","+",) ";
+                "INSERT INTO " + PROJECT_ID + "." + LOCATION_ID + "." + MAN_MOISTURE_TABLE + "(moisture,tree_species,dimensions,sawset,moisture_goal,no_moisture_check,start_time,stop_time,finished) " +
+                        "VALUES("+moisture+","+treeSpecies+","+dimensions+","+sawset+","+moistureGoal+","+NUMBER_OF_CHECKS+","+startTime+","+stopTime+","+IS_FINISHED+") ";
 
         System.out.println(sqlStatement);
 
@@ -587,8 +630,8 @@ public class DB {
         // Sqlstatement
         final String sqlStatement = "SELECT `" + KWH_TIMESTAMP_NAME_PARAMETER + "`, `" + KWH_NAME_PARAMETER + "` " +
                 "FROM `" + PROJECT_ID + "." + LOCATION_ID + "." + KWH_TABLE_NAME + "` " +
-                "WHERE " + KWH_TIMESTAMP_NAME_PARAMETER + " BETWEEN " + '"' + START_TIME + '"' +
-                " AND " + '"' + STOP_TIME + '"' +
+                "WHERE " + KWH_TIMESTAMP_NAME_PARAMETER + " BETWEEN " + '"' + HelpingFunctions.START_TIME + '"' +
+                " AND " + '"' + HelpingFunctions.STOP_TIME + '"' +
                 " AND " + KWH_VALUE_ID_NAME_PARAMETER + " = " + KWH_VALUE_ID_VALUE_PARAMETER + " " +
                 " AND " + KWH_NAME_PARAMETER + " <> 0 " +
                 " ORDER BY " + KWH_TIMESTAMP_NAME_PARAMETER + " ASC";
diff --git a/src/main/java/com/application/DB/HelpingFunctions.java b/src/main/java/com/application/DB/HelpingFunctions.java
index a34f4f536e07e53e75938bc46c990806a5fa6995..7cea97f5b8f146729c7c9136bde59f7dbddc3d39 100644
--- a/src/main/java/com/application/DB/HelpingFunctions.java
+++ b/src/main/java/com/application/DB/HelpingFunctions.java
@@ -11,11 +11,22 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.TimeZone;
 
-import static com.application.DB.Constants.PROJECT_ID;
+import static com.application.DB.Constants.*;
 
 public class HelpingFunctions {
 
 
+    // Start- & end time
+    public static String START_TIME = "";
+    public static String STOP_TIME = "";
+    // Boolean variable to tell if the drying process is finished
+    public static boolean IS_FINISHED = false;
+    public static boolean LOADED_DATA = false;
+    // User inputs
+    public static String TREE_SPECIES = "";
+    public static String DIMENSIONS = "";
+    public static String SAWSET = "";
+    public static String MOISTURE_GOAL = "";
     static Map<String,String> manMoist = new HashMap<>();
 
     /**
@@ -149,4 +160,32 @@ public class HelpingFunctions {
             }
         }
     }
+
+    public static int getNoOfChambers(){
+        int valmeticsChamberIDS = 0;
+        int kwhChamberIDS = 0;
+        int noOfChambers = 0;
+        System.out.println("Constants.getSawmills().size(): "+Constants.getSawmills().size());
+        for (HashMap.Entry<Integer, HashMap<String, HashMap<String, String>>> first : Constants.getSawmills().entrySet()) {
+            if (first.getKey() == 124) {
+                valmeticsChamberIDS = getValasenValmeticsChamberIDS().size();
+                kwhChamberIDS = getValasenKwhChamberIDS().size();
+            }
+            if (first.getKey() == 174) {
+                valmeticsChamberIDS = getArjangValmeticsChamberIDS().size();
+                kwhChamberIDS = getArjangKwhChamberIDS().size();
+            }
+            noOfChambers+= Math.min(valmeticsChamberIDS, kwhChamberIDS);
+            System.out.println("NO_OF_CHAMBERS: "+noOfChambers);
+        }
+        return noOfChambers;
+    }
+
+    public static boolean isLoadedData() {
+        return LOADED_DATA;
+    }
+
+    public static void setLoadedData(boolean loadedData) {
+        LOADED_DATA = loadedData;
+    }
 }
diff --git a/src/main/java/com/application/GUI/InputPopUpWindow.java b/src/main/java/com/application/GUI/InputPopUpWindow.java
index 3043841d2e149601c4bd11ad10ac7972ea495763..545e799d67c88fd3f0e2501ad365955b2570bf8d 100644
--- a/src/main/java/com/application/GUI/InputPopUpWindow.java
+++ b/src/main/java/com/application/GUI/InputPopUpWindow.java
@@ -1,5 +1,8 @@
 package com.application.GUI;
 
+import com.application.DB.Constants;
+import com.application.DB.HelpingFunctions;
+import com.application.Main;
 import javafx.application.Platform;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
@@ -15,10 +18,11 @@ import java.util.Map;
 
 import static com.application.DB.Constants.*;
 import static com.application.DB.DB.getCurrentDrying;
-import static com.application.GUI.LineChartFunctionality.loadLiveData;
+import static com.application.DB.HelpingFunctions.LOADED_DATA;
+import static com.application.DB.HelpingFunctions.setLoadedData;
+import static com.application.GUI.LineChartFunctionality.*;
 import static com.application.Main.*;
 import static com.application.DB.DB.setInputParameters;
-import static com.application.GUI.LineChartFunctionality.loadSingleSeries;
 
 
 /**
@@ -29,6 +33,8 @@ import static com.application.GUI.LineChartFunctionality.loadSingleSeries;
  */
 public class InputPopUpWindow {
 
+    private static boolean err = false;
+
     public static void exitDataThread(){
         Platform.exit();
         System.exit(0);
@@ -91,7 +97,7 @@ public class InputPopUpWindow {
                             "4ex"
         );
         ComboBox<String> sawsetList = new ComboBox<>(sawset);
-        sawsetList.setPromptText("Select Dimensions");
+        sawsetList.setPromptText("Select Sawset");
         sawsetList.setId("inputDropDownBox");
         sawsetList.setEditable(true);
 
@@ -107,7 +113,7 @@ public class InputPopUpWindow {
                         "20%"
         );
         ComboBox<String> moistureList = new ComboBox<>(moistureGoal);
-        moistureList.setPromptText("Select Dimensions");
+        moistureList.setPromptText("Select Moisture Goal");
         moistureList.setId("inputDropDownBox");
         moistureList.setEditable(true);
 
@@ -118,171 +124,132 @@ public class InputPopUpWindow {
 
         startButton.setOnAction(e -> {
 
-                    // Sets the start time
-
-                    START_TIME = CURRENT_DATE;
+            // Sets the start time
+            Constants.CURRENT_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
+            HelpingFunctions.START_TIME = CURRENT_DATE;
+
+            // Retrieves the user inputs
+            HelpingFunctions.TREE_SPECIES = treeSpeciesList.getValue();
+            HelpingFunctions.DIMENSIONS = dimensionsList.getValue();
+            HelpingFunctions.SAWSET = sawsetList.getValue();
+            if (moistureList.getValue() != null && moistureList.getValue().contains("%")) {
+                HelpingFunctions.MOISTURE_GOAL = moistureList.getValue().replace("%", "");
+            } else {
+                HelpingFunctions.MOISTURE_GOAL = moistureList.getValue();
+            }
 
-                    // Retrieves the user inputs
-                    TREE_SPECIES = treeSpeciesList.getValue();
-                    DIMENSIONS = dimensionsList.getValue();
-                    SAWSET = sawsetList.getValue();
-                    if(moistureList.getValue() != null && moistureList.getValue().contains("%"))
-                    {
-                        MOISTURE_GOAL = moistureList.getValue().replace("%","");
-                    } else {
-                        MOISTURE_GOAL = moistureList.getValue();
-                    }
 
+            // If the input is null, sets the value to be empty
+            if (treeSpeciesList.getValue() == null) {
+                HelpingFunctions.TREE_SPECIES = "";
+            } else if (treeSpeciesList.getValue().length() > 10) {
+                treeSpeciesList.setPromptText("A maximum of 10 characters is allowed!");
+                err = true;
+            }
+            if (dimensionsList.getValue() == null) {
+                HelpingFunctions.DIMENSIONS = "";
+            }  else if (dimensionsList.getValue().length() > 10) {
+                dimensionsList.setPromptText("A maximum of 10 characters is allowed!");
+                err = true;
+            }
+            if (sawsetList.getValue() == null) {
+                HelpingFunctions.SAWSET = "";
+            } else if (sawsetList.getValue().length() > 10) {
+                sawsetList.setPromptText("A maximum of 10 characters is allowed!");
+                err = true;
+            }
+            if (moistureList.getValue() == null) {
+                HelpingFunctions.MOISTURE_GOAL = "";
+            } else if (moistureList.getValue().length() > 10) {
+                moistureList.setPromptText("A maximum of 10 characters is allowed!");
+                err = true;
+            }
 
-                    // If the input is null, sets the value to be empty
-                    if (treeSpeciesList.getValue() == null) {
-                        TREE_SPECIES = "";
-                    }
-                    if (dimensionsList.getValue() == null) {
-                        DIMENSIONS = "";
-                    }
-                    if (sawsetList.getValue() == null) {
-                        SAWSET = "";
-                    }
-                    if (moistureList.getValue() == null) {
-                        MOISTURE_GOAL = "";
-                    }
 
-                    setTreeSpeciesText(TREE_SPECIES);
-                    setDimensionsText(DIMENSIONS);
-                    setSawsetText(SAWSET);
-                    setMoistureGoalText(MOISTURE_GOAL);
 
-                    window.close();
 
+            if (!err) {
 
 
+                setTreeSpeciesText(HelpingFunctions.TREE_SPECIES);
+                setDimensionsText(HelpingFunctions.DIMENSIONS);
+                setSawsetText(HelpingFunctions.SAWSET);
+                setMoistureGoalText(HelpingFunctions.MOISTURE_GOAL);
 
-/*
-                    FutureTask[] randomNumberTasks = new FutureTask[1];
-                    Callable callable = new CallableExample();
-                    randomNumberTasks[0] = new FutureTask(callable);
-                    Thread t = new Thread(randomNumberTasks[0]);
-                    t.start();
+                window.close();
 
-                    try {
-                        System.out.println(randomNumberTasks[0].get());
-                    } catch (InterruptedException | ExecutionException ex) {
-                        ex.printStackTrace();
-                    }
 
-                });
 
- */
 
-/*
+            // Fungerende ny thread!!@@@@@
+            // Gather data
+            try {
+                Thread thread = new Thread(() -> {
 
                     try {
-                        //getData();
-                        loadSingleSeries(setInputParameters());
-                        //loadMultipleSeries(setInputParameters());
-                        //loadSingleSeries();
-                        //loadMultipleSeries();
+                        setLoadedData(false);
+                        // Henter her data fra databasen
+                        Map<Integer, Map<String, Number>> data = setInputParameters();
+                        Platform.runLater(() -> {
+                            try {
+                                loadSingleSeries(data);
+                                setLoadedData(true);
+                            } catch (Exception ex) {
+                                ex.printStackTrace();
+                            }
+                        });
                     } catch (Exception ex) {
                         ex.printStackTrace();
                     }
                 }
-
                 );
-
- */
-
-
-
-
-
-
-
-/*
-            try{
-                Thread thread = new Thread(new Runnable() {
-
-                    @Override
-                    public void run() {
-                        try {
-                            // Henter her data fra databasen
-                            loadSingleSeries(setInputParameters(false,false,false,false));
-                            //loadSingleSeries();
-                            //loadMultipleSeries();
-                        } catch (Exception ex) {
-                            ex.printStackTrace();
-                        }
-                    }
-                });
+                thread.setDaemon(true);
+                thread.interrupt();
+                thread.join();
+                //Platform.exit();
                 thread.start();
+
             } catch (Exception ex) {
                 ex.printStackTrace();
             }
-                }
-                );
-
- */
 
-                    // Fungerende ny thread!!@@@@@
-                    // Gather data
-                    try{
-                        Thread thread = new Thread(() -> {
+            // Retrieve data for current drying period
+            try {
+                Thread liveDataThread = new Thread(() -> {
+                    try {
+                        while (!HelpingFunctions.IS_FINISHED) {
 
+                            HelpingFunctions.STOP_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
+                            Map<String, Number> data = getCurrentDrying();
+                            Platform.runLater(() -> {
                                 try {
-                                    // Henter her data fra databasen
-                                    Map<Integer, Map<String, Number>> data = setInputParameters();
-                                    Platform.runLater(() -> {
-                                        try {
-                                            loadSingleSeries(data);
-                                        } catch (Exception ex) {
-                                            ex.printStackTrace();
-                                        }
-                                    });
+                                    loadLiveData(data);
                                 } catch (Exception ex) {
                                     ex.printStackTrace();
                                 }
-                            }
-                        );
-                        thread.setDaemon(true);
-                        thread.start();
-
+                            });
+                            Thread.sleep(1000L * NUMBER_OF_SECONDS_LIVE_DATA);
+                        }
                     } catch (Exception ex) {
                         ex.printStackTrace();
                     }
+                }
+                );
+                liveDataThread.setDaemon(true);
+                liveDataThread.interrupt();
+                liveDataThread.join();
+                //Platform.exit();
+                liveDataThread.start();
 
-                    // Retrieve data for current drying period
-                        try{
-                            Thread thread = new Thread(() -> {
-                                try {
-                                    while(!IS_FINISHED){
-
-                                        STOP_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
-                                        Map<String, Number> data = getCurrentDrying();
-                                        Platform.runLater(() -> {
-                                            try {
-                                                loadLiveData(data);
-                                            } catch (Exception ex) {
-                                                ex.printStackTrace();
-                                            }
-                                        });
-                                        Thread.sleep(1000L *NUMBER_OF_SECONDS_LIVE_DATA);
-                                    }
-                                } catch (Exception ex) {
-                                    ex.printStackTrace();
-                                }
-                            }
-                            );
-                            thread.setDaemon(true);
-                            thread.start();
-
-                        } catch (Exception ex) {
-                            ex.printStackTrace();
-                        }
-
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
 
+        }
                 }
 
         );
+
 /*
                     // Fungerende ny thread!!@@@@@
                     try{
@@ -374,5 +341,4 @@ public class InputPopUpWindow {
         window.setScene(scene);
         window.showAndWait();
     }
-
 }
diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java
index c5b42259e1085cbe135eb933243c8e890cfdf2a3..98836700a206684aaa85ffedcc236c24b080999a 100644
--- a/src/main/java/com/application/GUI/LineChartFunctionality.java
+++ b/src/main/java/com/application/GUI/LineChartFunctionality.java
@@ -1,6 +1,6 @@
 package com.application.GUI;
 
-import javafx.collections.ObservableList;
+import com.application.Main;
 import javafx.scene.chart.CategoryAxis;
 import javafx.scene.chart.LineChart;
 import javafx.scene.chart.NumberAxis;
@@ -11,11 +11,9 @@ import org.apache.commons.math3.exception.MathIllegalArgumentException;
 import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
 import org.apache.commons.math3.stat.regression.SimpleRegression;
 
-import java.lang.reflect.Array;
 import java.util.*;
 
 import static com.application.DB.Constants.ADJUST_REGRESSION;
-//import static com.application.DB.DB.
 
 public class LineChartFunctionality {
 
@@ -24,10 +22,11 @@ public class LineChartFunctionality {
     private static CategoryAxis xAxis;
     private static NumberAxis yAxis;
     private static final double CONFIDENCE_INTERVAL = 0.90;
+    private static int dataPoints = 0;
+    private static Map<String, Number> liveData;
 
 
     public LineChartFunctionality() {
-        liveDataSeries = new XYChart.Series<String, Number>();
         xAxis = new CategoryAxis();
         yAxis = new NumberAxis();
         lineChart = new LineChart<>(xAxis, yAxis);
@@ -36,7 +35,6 @@ public class LineChartFunctionality {
         yAxis.setLabel("Kwh");
         yAxis.setAnimated(false);
         lineChart.setTitle("Drying Processes");
-        lineChart.getData().add(liveDataSeries);
     }
 
 
@@ -193,14 +191,15 @@ public class LineChartFunctionality {
         }
         endOfGraphPoints.add(confidenceIntervalData.size());
 
-        int dataPoints = 0;
+        dataPoints = 0;
         for (int i = 0; i < endOfGraphPoints.size(); i++) {
             dataPoints+=endOfGraphPoints.get(i);
         }
         dataPoints = dataPoints/endOfGraphPoints.size();
 
 
-
+        liveDataSeries = new XYChart.Series<String, Number>();
+        updateLineChart(liveDataSeries);
 
 
         XYChart.Series<String, Number> regressionSeries = new XYChart.Series<String, Number>();
@@ -258,11 +257,16 @@ public class LineChartFunctionality {
 
         //simpleRegression.add
 
+        getTimeLeft(0);
+
         return getLineChart();
     }
 
     public static void loadLiveData(Map<String, Number> userInput) throws Exception {
 
+        setLiveData(userInput);
+        getTimeLeft(userInput.size());
+
         int index = 0;
         for (Map.Entry<String, Number> entryKwh : userInput.entrySet()) {
             Double kwhValue = entryKwh.getValue().doubleValue();
@@ -271,7 +275,24 @@ public class LineChartFunctionality {
             liveDataSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
             index++;
         }
-}
+    }
+
+    public static void getTimeLeft(int liveData){
+        int time = 0;
+
+        if(liveData == 0) {
+            time = getDataPoints()*10;
+
+        } else {
+            time = (getDataPoints()/liveData)*10;
+        }
+        if(time > 60){
+            time = time/60;
+            Main.setTimeLeftText(time + " h");
+        } else {
+            Main.setTimeLeftText(time + " min");
+        }
+    }
 
 
     public static double getNonLinearRegression(Map<Integer, ArrayList<Double>> confidenceIntervalData, double y0, double alpha, double j, int n) {
@@ -306,4 +327,16 @@ public class LineChartFunctionality {
         return p_t;
 
     }
+
+    public static int getDataPoints() {
+        return dataPoints;
+    }
+
+    public static Map<String, Number> getLiveData() {
+        return liveData;
+    }
+
+    public static void setLiveData(Map<String, Number> input) {
+        liveData = input;
+    }
 }
diff --git a/src/main/java/com/application/GUI/OutputPopUpWindow.java b/src/main/java/com/application/GUI/OutputPopUpWindow.java
index 94d7d93cae131313a583194d6286a8fa38104ffb..321ebdc2b1d5900b03b6d7ea4d3404a43e1ff1db 100644
--- a/src/main/java/com/application/GUI/OutputPopUpWindow.java
+++ b/src/main/java/com/application/GUI/OutputPopUpWindow.java
@@ -1,6 +1,7 @@
 package com.application.GUI;
 
 import com.application.DB.DB;
+import com.application.DB.HelpingFunctions;
 import javafx.geometry.Pos;
 import javafx.scene.Scene;
 import javafx.scene.control.Button;
@@ -14,6 +15,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 
 import static com.application.DB.Constants.*;
+import static com.application.DB.HelpingFunctions.IS_FINISHED;
 
 public class OutputPopUpWindow {
 
@@ -36,15 +38,24 @@ public class OutputPopUpWindow {
         moistureCheckTextField.setId("inputLabel");
         moistureCheckTextField.setAlignment(Pos.CENTER);
 
+
+
         // Bottom - Buttons
         Button countinueButton = new Button("Continue");
         countinueButton.setId("inputButtonStart");
         countinueButton.setAlignment(Pos.BOTTOM_CENTER);
         countinueButton.setOnAction(e -> {
                     try {
-                        STOP_TIME = "";
-                        DB.pushManMoisture(moistureCheckTextField.getCharacters().toString(), false);
-                        NUMBER_OF_CHECKS++;
+                        if(!moistureCheckTextField.getCharacters().toString().isEmpty() &&
+                            !moistureCheckTextField.getCharacters().toString().equals("Please enter a value")) {
+                            HelpingFunctions.STOP_TIME = null;
+                            DB.pushManMoisture(moistureCheckTextField.getCharacters().toString());
+                            NUMBER_OF_CHECKS++;
+                            window.close();
+                        } else {
+                            moistureCheckTextField.setPromptText("Please enter a value");
+                        }
+
                     } catch (Exception ex) {
                         ex.printStackTrace();
                     }
@@ -54,8 +65,15 @@ public class OutputPopUpWindow {
         finishButton.setAlignment(Pos.BOTTOM_CENTER);
         finishButton.setOnAction(e -> {
             try {
-                STOP_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
-                DB.pushManMoisture(moistureCheckTextField.getCharacters().toString(),true);
+                if(!moistureCheckTextField.getCharacters().toString().isEmpty() &&
+                    !moistureCheckTextField.getCharacters().toString().equals("Please enter a value")) {
+                    IS_FINISHED = true;
+                    HelpingFunctions.STOP_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
+                    DB.pushManMoisture(moistureCheckTextField.getCharacters().toString());
+                    window.close();
+                } else {
+                    moistureCheckTextField.setPromptText("Please enter a value");
+                }
             } catch (Exception ex) {
                 ex.printStackTrace();
             }
diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java
index 2a15a6eb4f244bc1d32dc735709c16fe8dcf6edc..b795ec3dd57730f274660ee66ea94c309ac7b5c7 100644
--- a/src/main/java/com/application/Main.java
+++ b/src/main/java/com/application/Main.java
@@ -1,6 +1,6 @@
 package com.application;
 
-import com.application.DB.Constants;
+import com.application.DB.HelpingFunctions;
 import com.application.GUI.InputPopUpWindow;
 import com.application.GUI.OutputPopUpWindow;
 import com.application.GUI.RingProgressIndicator;
@@ -22,6 +22,10 @@ import java.io.IOException;
 import java.util.logging.Logger;
 
 import static com.application.DB.Constants.*;
+import static com.application.DB.HelpingFunctions.*;
+import static com.application.DB.HelpingFunctions.isLoadedData;
+import static com.application.GUI.LineChartFunctionality.getDataPoints;
+import static com.application.GUI.LineChartFunctionality.getLiveData;
 import static java.util.logging.Level.SEVERE;
 
 /**
@@ -42,6 +46,7 @@ public class Main extends Application {
     private static TextField dimensionsText;
     private static TextField sawsetText;
     private static TextField moistureGoalText;
+    private static TextField timeLeftText;
 
     /**
      * Starts the application
@@ -162,7 +167,7 @@ public class Main extends Application {
         treeSpeciesText = new TextField();
         treeSpeciesText.setId("sideBarLabelText");
         treeSpeciesText.setPromptText("No Input");
-        treeSpeciesText.setText(TREE_SPECIES);
+        treeSpeciesText.setText(HelpingFunctions.TREE_SPECIES);
         treeSpeciesText.setEditable(false);
 
         Label dimensionsLabel = new Label("Width x Height");
@@ -170,7 +175,7 @@ public class Main extends Application {
         dimensionsText = new TextField();
         dimensionsText.setId("sideBarLabelText");
         dimensionsText.setPromptText("No Input");
-        dimensionsText.setText(DIMENSIONS);
+        dimensionsText.setText(HelpingFunctions.DIMENSIONS);
         dimensionsText.setEditable(false);
 
         Label sawsetLabel = new Label("Sawset");
@@ -178,7 +183,7 @@ public class Main extends Application {
         sawsetText = new TextField();
         sawsetText.setId("sideBarLabelText");
         sawsetText.setPromptText("No Input");
-        sawsetText.setText(SAWSET);
+        sawsetText.setText(HelpingFunctions.SAWSET);
         sawsetText.setEditable(false);
 
         Label moistureGoalLabel = new Label("Moisture Goal");
@@ -186,9 +191,17 @@ public class Main extends Application {
         moistureGoalText = new TextField();
         moistureGoalText.setId("sideBarLabelText");
         moistureGoalText.setPromptText("No Input");
-        moistureGoalText.setText(MOISTURE_GOAL);
+        moistureGoalText.setText(HelpingFunctions.MOISTURE_GOAL);
         moistureGoalText.setEditable(false);
 
+        Label timeLeftLabel = new Label("Time Left");
+        timeLeftLabel.setId("sideBarLabelText");
+        timeLeftText = new TextField();
+        timeLeftText.setId("sideBarLabelText");
+        timeLeftText.setPromptText("Calculating...");
+        timeLeftText.setText(TIME_LEFT);
+        timeLeftText.setEditable(false);
+
         Button inputParametersButton = new Button("Input Parameters");
         inputParametersButton.setId("sideBarButtonInputParameters");
         inputParametersButton.setOnAction(e -> InputPopUpWindow.display());
@@ -217,24 +230,32 @@ public class Main extends Application {
             }
 
             @Override
-            public void run(){
-                try {
-                    Thread.sleep(100000);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-                while (true){
+            public void run() {
+                while (!IS_FINISHED) {
+
                     try {
-                        Thread.sleep(100);
+                        ringProgressIndicator.makeIndeterminate();
+                        Thread.sleep(500L * NUMBER_OF_SECONDS_LIVE_DATA);
                     } catch (InterruptedException e) {
                         e.printStackTrace();
-                        Logger.getLogger(getClass().getName()).log(SEVERE,null,e);
                     }
-                    Platform.runLater(() -> {rpi.setProgress(progress);});
 
-                    progress += 1;
-                    if(progress>100){
-                        break;
+                    while (isLoadedData()) {
+                        try {
+                            Thread.sleep(100);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                            Logger.getLogger(getClass().getName()).log(SEVERE, null, e);
+                        }
+                        Platform.runLater(() -> {
+                            rpi.setProgress(progress);
+                        });
+
+                        progress = getLiveData().size()/getDataPoints();
+
+                        if (progress > 100) {
+                            break;
+                        }
                     }
                 }
             }
@@ -245,7 +266,7 @@ public class Main extends Application {
 
 
         sideBarVBox.getChildren().addAll(ringProgressIndicator, treeSpeciesLabel, treeSpeciesText, dimensionsLabel, dimensionsText,
-                sawsetLabel, sawsetText, moistureGoalLabel, moistureGoalText, inputParametersButton, finishButton, exitButton);
+                sawsetLabel, sawsetText, moistureGoalLabel, moistureGoalText, timeLeftLabel, timeLeftText, inputParametersButton, finishButton, exitButton);
 
         VBox.setVgrow(sideBarVBox, Priority.ALWAYS);
 
@@ -302,6 +323,10 @@ public class Main extends Application {
     public static void setMoistureGoalText(String moistureGoalText) {
         Main.moistureGoalText.setText(moistureGoalText);
     }
+
+    public static void setTimeLeftText(String moistureGoalText) {
+        Main.timeLeftText.setText(moistureGoalText);
+    }
 }
 
 
diff --git a/src/main/resources/com.application/GUI/graphStyles.css b/src/main/resources/com.application/GUI/graphStyles.css
index bbef3d52ce4941ae4c58f31aa59e4f0e8b31486e..ce64d11a6212e471d83818c65688d7718b717114 100644
--- a/src/main/resources/com.application/GUI/graphStyles.css
+++ b/src/main/resources/com.application/GUI/graphStyles.css
@@ -4,8 +4,8 @@
     -fx-effect: null;
 }
 
-.default-color0.chart-series-line{-fx-stroke: green; -fx-opacity: 1.0}
-.default-color1.chart-series-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
+.default-color0.chart-series-line{-fx-stroke: red; -fx-opacity: 1.0}
+.default-color1.chart-series-line{-fx-stroke: green; -fx-opacity: 1.0}
 .default-color2.chart-series-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 .default-color3.chart-series-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 .default-color4.chart-series-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
@@ -13,8 +13,8 @@
 .default-color6.chart-series-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 .default-color7.chart-series-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 
-.default-color0.chart-line-symbol{-fx-background-color: green,green;}
-.default-color1.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
+.default-color0.chart-line-symbol{-fx-background-color: red,red;}
+.default-color1.chart-line-symbol{-fx-background-color: green,green;}
 .default-color2.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
 .default-color3.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
 .default-color4.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
diff --git a/target/classes/com/application/DB/Constants.class b/target/classes/com/application/DB/Constants.class
index 12b796c5c7f59d192a5504fb50d7263ec9fee188..02c56a821341bc307e15807c05b63c49702bfc51 100644
Binary files a/target/classes/com/application/DB/Constants.class and b/target/classes/com/application/DB/Constants.class differ
diff --git a/target/classes/com/application/DB/DB.class b/target/classes/com/application/DB/DB.class
index 907ca7cd83870015b2dfa3d10e234e29292ea61b..26a1f36fce1a238184b8a29e8cb4e0d4a150c8f8 100644
Binary files a/target/classes/com/application/DB/DB.class and b/target/classes/com/application/DB/DB.class differ
diff --git a/target/classes/com/application/DB/HelpingFunctions.class b/target/classes/com/application/DB/HelpingFunctions.class
index 77d4802660217db2dbb5a825bf559f40a6d64f55..36d469c1d0ca1685925a9c9f742790f882b7ae9b 100644
Binary files a/target/classes/com/application/DB/HelpingFunctions.class and b/target/classes/com/application/DB/HelpingFunctions.class differ
diff --git a/target/classes/com/application/GUI/InputPopUpWindow.class b/target/classes/com/application/GUI/InputPopUpWindow.class
index 22435a873bdd72d725141bb68ad28bf4d1bb7f2d..037171ffa7925880946ed5def0d7a08388321c3e 100644
Binary files a/target/classes/com/application/GUI/InputPopUpWindow.class and b/target/classes/com/application/GUI/InputPopUpWindow.class differ
diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class
index f70466837b2fd6c3753ca6494fe6f688c79c214e..125b40b88613c6967a6c7d4b98232326c6796831 100644
Binary files a/target/classes/com/application/GUI/LineChartFunctionality.class and b/target/classes/com/application/GUI/LineChartFunctionality.class differ
diff --git a/target/classes/com/application/GUI/OutputPopUpWindow.class b/target/classes/com/application/GUI/OutputPopUpWindow.class
index 3ce6d7422da8fe27aa5bfd05cc8d07d7c6ca9408..27d06e89690bd8ca3dda77884ecb9438ad689235 100644
Binary files a/target/classes/com/application/GUI/OutputPopUpWindow.class and b/target/classes/com/application/GUI/OutputPopUpWindow.class differ
diff --git a/target/classes/com/application/Main$1WorkerThread.class b/target/classes/com/application/Main$1WorkerThread.class
index 96fdabd6ebabc2018a0dd6405c464e591d7e57cb..8764a06752f05b58c77755135c22afadf0c8bbf2 100644
Binary files a/target/classes/com/application/Main$1WorkerThread.class and b/target/classes/com/application/Main$1WorkerThread.class differ
diff --git a/target/classes/com/application/Main.class b/target/classes/com/application/Main.class
index 4f200bb95090d532276bac28a3d5cf147cbf33a6..b9e38140f6b49fd482603f5b043ca7205cbe4856 100644
Binary files a/target/classes/com/application/Main.class and b/target/classes/com/application/Main.class differ