diff --git a/Bachelor_application.iml b/Bachelor_application.iml
index f8154df5a6a0bb9048b52fc21433f278efd739cf..06a8fa9ccd7558c365b321eced705ef4f63de40c 100644
--- a/Bachelor_application.iml
+++ b/Bachelor_application.iml
@@ -54,6 +54,5 @@
     <orderEntry type="library" name="Maven: com.google.auto.value:auto-value-annotations:1.9" level="project" />
     <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
     <orderEntry type="library" name="Maven: joda-time:joda-time:2.10.14" level="project" />
-    <orderEntry type="library" name="Maven: org.jblas:jblas:1.2.4" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 221d396532975bb209aa47db1d85c44ec971bf1f..51648b17b7224b51ee9052b3b136ff9a1d2b888a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,11 +40,6 @@
             <artifactId>joda-time</artifactId>
             <version>2.10.14</version>
         </dependency>
-        <dependency>
-            <groupId>org.jblas</groupId>
-            <artifactId>jblas</artifactId>
-            <version>1.2.4</version>
-        </dependency>
     </dependencies>
 
     <properties>
diff --git a/src/main/java/com/application/DB/Constants.java b/src/main/java/com/application/DB/Constants.java
index ccb1facb19eda28314facb4e06f8ae58fd4cfe11..69d3c177179c33f5b99c24b959d20fb0d65a06ac 100644
--- a/src/main/java/com/application/DB/Constants.java
+++ b/src/main/java/com/application/DB/Constants.java
@@ -27,10 +27,13 @@ public final class Constants {
     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;
+    public static int NUMBER_OF_SECONDS_LIVE_DATA = 60;
+
+    // Confidence interval
+    public static final double CONFIDENCE_INTERVAL = 0.95;
 
     // Non linear regression
-    public static final double ADJUST_REGRESSION = 5.5;
+    public static final double ADJUST_REGRESSION = 2.5;
 
     // Current sawmill settings;
     public static final String PROJECT_ID = "sf-drying-optimization";
diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java
index 98836700a206684aaa85ffedcc236c24b080999a..a72f2b9f35504939bca003656fe0d3157375dbc0 100644
--- a/src/main/java/com/application/GUI/LineChartFunctionality.java
+++ b/src/main/java/com/application/GUI/LineChartFunctionality.java
@@ -1,5 +1,6 @@
 package com.application.GUI;
 
+import com.application.DB.Constants;
 import com.application.Main;
 import javafx.scene.chart.CategoryAxis;
 import javafx.scene.chart.LineChart;
@@ -14,6 +15,7 @@ import org.apache.commons.math3.stat.regression.SimpleRegression;
 import java.util.*;
 
 import static com.application.DB.Constants.ADJUST_REGRESSION;
+import static com.application.DB.Constants.CONFIDENCE_INTERVAL;
 
 public class LineChartFunctionality {
 
@@ -21,8 +23,8 @@ public class LineChartFunctionality {
     private static XYChart.Series<String, Number> liveDataSeries;
     private static CategoryAxis xAxis;
     private static NumberAxis yAxis;
-    private static final double CONFIDENCE_INTERVAL = 0.90;
-    private static int dataPoints = 0;
+    private static int dataPointsXAxis = 0;
+    private static int dataPointsYAxis = 0;
     private static Map<String, Number> liveData;
 
 
@@ -58,22 +60,25 @@ public class LineChartFunctionality {
         for (Map.Entry<Integer, ArrayList<Double>> entry : multiMap.entrySet()) {
             //System.out.printf("\nIndex: \t%s\t\t\tkWh: \t%s\n", entry.getKey(), entry.getValue());
 
-            if(entry.getValue().size()>1){
+            System.out.println("entry: "+entry);
+            //if(entry.getValue().size()>1){
                 SummaryStatistics stats = new SummaryStatistics();
                 for (double val : entry.getValue()) {
                     stats.addValue(val);
                 }
 
+            //System.out.println("Stats: "+stats);
+
                 // Calculate 95% confidence interval
-                double ci = calcMeanCI(stats, CONFIDENCE_INTERVAL);
+                double ci = calcMeanCI(stats, Constants.CONFIDENCE_INTERVAL);
                 //System.out.println(String.format("Mean: %f", stats.getMean()));
                 double lower = stats.getMean() - ci;
                 double upper = stats.getMean() + ci;
-                //System.out.println(String.format("Confidence Interval 95%%: %f, %f", lower, upper));
+                System.out.println(String.format("Confidence Interval "+CONFIDENCE_INTERVAL*100+"%%: %f, %f", lower, upper));
 
                 // Deletes entries if they are out of bounds with the confidence interval
                 entry.getValue().removeIf(value -> Double.compare(value, lower) < 0 || Double.compare(value, upper) > 0);
-            }
+            //}
         }
         return multiMap;
     }
@@ -127,6 +132,74 @@ public class LineChartFunctionality {
 
         //System.out.println("Series size: "+allSeries.size());
 
+
+
+        // Finds the end datapoint at the end of each graph
+        int numberOfGraphs = 0;
+        ArrayList<Double> dataArraylistXAxis = new ArrayList<>();
+        ArrayList<Double> dataArraylistYAxis = new ArrayList<>();
+        Map<Integer, ArrayList<Double>> endOfGraphPointsXAxis = new HashMap<>();
+        Map<Integer, ArrayList<Double>> endOfGraphPointsYAxis = new HashMap<>();
+        for (int i = 0; i < multiMap.size(); i++) {
+            ArrayList<Double> list = multiMap.get(i);
+            for (int j = 0; j < list.size(); j++) {
+                if (numberOfGraphs < list.size()) {
+                    numberOfGraphs = list.size();
+                }
+                if (list.size() < numberOfGraphs) {
+
+                    dataArraylistXAxis.add((double) i);
+                    dataArraylistYAxis.add(multiMap.get(i).get(j));
+                    //System.out.println(tempList);
+
+                    numberOfGraphs = list.size();
+                }
+            }
+        }
+        dataArraylistXAxis.add((double) multiMap.size());
+        dataArraylistYAxis.add(multiMap.get(multiMap.size()-1).get(0));
+
+        //System.out.println(dataArraylistYAxis);
+
+
+        endOfGraphPointsXAxis.put(0,dataArraylistXAxis);
+        endOfGraphPointsYAxis.put(0,dataArraylistYAxis);
+
+        System.out.println(endOfGraphPointsXAxis);
+        System.out.println(endOfGraphPointsYAxis);
+
+        Map<Integer, ArrayList<Double>> endOfGraphPointsConfidenceXAxis = statistics(endOfGraphPointsXAxis);
+        Map<Integer, ArrayList<Double>> endOfGraphPointsConfidenceYaxis = statistics(endOfGraphPointsYAxis);
+
+        System.out.println(endOfGraphPointsConfidenceXAxis);
+
+        System.out.println("Size of list: "+ endOfGraphPointsConfidenceXAxis.size());
+
+        dataPointsXAxis = 0;
+        for (Map.Entry<Integer, ArrayList<Double>> entry : endOfGraphPointsConfidenceXAxis.entrySet()) {
+            System.out.println("Arraylist: "+ entry.getValue());
+            for (int i = 0; i < entry.getValue().size(); i++) {
+                System.out.println("End of graphs: "+ entry.getValue().get(i));
+                dataPointsXAxis += entry.getValue().get(i);
+            }
+        }
+        dataPointsXAxis = dataPointsXAxis /endOfGraphPointsConfidenceXAxis.get(0).size();
+
+        System.out.println("Datapoints: " + dataPointsXAxis);
+
+        dataPointsYAxis = 0;
+        for (Map.Entry<Integer, ArrayList<Double>> entry : endOfGraphPointsConfidenceYaxis.entrySet()) {
+            System.out.println("Arraylist: "+ entry.getValue());
+            for (int i = 0; i < entry.getValue().size(); i++) {
+                System.out.println("End of graphs: "+ entry.getValue().get(i));
+                dataPointsYAxis += entry.getValue().get(i);
+            }
+        }
+        dataPointsYAxis = dataPointsYAxis /endOfGraphPointsConfidenceYaxis.get(0).size();
+
+        System.out.println("Datapoints Y-axis: " + dataPointsYAxis);
+
+
         // Stores the data from the confidence interval in a new map
         Map<Integer, ArrayList<Double>> confidenceIntervalData = statistics(multiMap);
 
@@ -174,47 +247,29 @@ public class LineChartFunctionality {
             }
         }
 
-        // Finds the end datapoint at the end of each graph
-        int numberOfGraphs = 0;
-        ArrayList<Integer> endOfGraphPoints = new ArrayList<>();
-        for (int i = 0; i < confidenceIntervalData.size(); i++) {
-            ArrayList<Double> list = confidenceIntervalData.get(i);
-            for (int j = 0; j < list.size(); j++) {
-                if (numberOfGraphs < list.size()) {
-                    numberOfGraphs = list.size();
-                }
-                if (list.size() < numberOfGraphs) {
-                    endOfGraphPoints.add(i);
-                    numberOfGraphs = list.size();
-                }
-            }
-        }
-        endOfGraphPoints.add(confidenceIntervalData.size());
-
-        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>();
-        for (int i = 0; i <= dataPoints; i++) {
+        for (int i = 0; i <= getDataPointsXAxis(); i++) {
 
             // Connect the data to a series
             //System.out.println(simpleRegression.predict(i));
             //regressionSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(i), simpleRegression.predict(i)));
             regressionSeries.getData().add(new XYChart.Data<String, Number>(
                             String.valueOf(i),
-                            getNonLinearRegression(confidenceIntervalData,
-                            simpleRegression.getIntercept(),
-                            simpleRegression.getSlope(),
-                            i,
-                            dataPoints)));
+                            getNonLinearRegression(
+                                confidenceIntervalData,
+                                getDataPointsYAxis(),
+                                //simpleRegression.getIntercept(),
+                                simpleRegression.getSlope(),
+                                //simpleRegression.getIntercept()
+                                getDataPointsYAxis(),
+                                i,
+                                    getDataPointsXAxis()
+                            )));
         }
         updateLineChart(regressionSeries);
         //lineChart.setOpacity(1);
@@ -252,7 +307,7 @@ public class LineChartFunctionality {
         System.out.println("Predicted Time: "  + simpleRegression.predict(35));
 
         // You can also get the slope and intercept from your data
-        System.out.println("slope = " + simpleRegression.getSlope());
+        System.out.println("Alpha! = " + simpleRegression.getSlope());
         System.out.println("intercept = " + simpleRegression.getIntercept());
 
         //simpleRegression.add
@@ -281,10 +336,10 @@ public class LineChartFunctionality {
         int time = 0;
 
         if(liveData == 0) {
-            time = getDataPoints()*10;
+            time = getDataPointsXAxis()*10;
 
         } else {
-            time = (getDataPoints()/liveData)*10;
+            time = (getDataPointsXAxis()/liveData)*10;
         }
         if(time > 60){
             time = time/60;
@@ -295,10 +350,10 @@ public class LineChartFunctionality {
     }
 
 
-    public static double getNonLinearRegression(Map<Integer, ArrayList<Double>> confidenceIntervalData, double y0, double alpha, double j, int n) {
+    public static double getNonLinearRegression(Map<Integer, ArrayList<Double>> confidenceIntervalData, double y0, double alpha, double beta, double j, double n) {
         //return Math.exp(intercept+slope*i)/(1+Math.exp(intercept+slope*i));
 
-
+        /*
         double beta = 0.0;
         //double n = confidenceIntervalData.size();
         for (Map.Entry<Integer, ArrayList<Double>> entry : confidenceIntervalData.entrySet()) {
@@ -308,28 +363,31 @@ public class LineChartFunctionality {
                 }
             }
         }
+
+         */
         //System.out.println("maxYValue: " + maxYValue);
         //System.out.println("j*n: "+j/n);
 
-        //double p_t = ((beta*maxYValue)/(maxYValue+((beta-maxYValue)*Math.exp(-alpha*(yValue-maxYValue)))));
-        //double p_t = ((beta* y0)/(y0 +((beta- y0)*Math.exp(-alpha*j/n/(2*Math.PI)))))-y0;      //Funker sånn halveis
-        //double p_t = (beta * y0)/(y0 + (beta - y0)*Math.exp(-intercept*(j/n)));
-
-        double p_t = (((beta * y0))/(y0 +((beta- y0)*Math.exp(-alpha*j/n/(ADJUST_REGRESSION)))))-y0;      //Beste til nå
+        //double p_t = (((beta * y0))/(y0 +((beta- y0)*Math.exp(-alpha*j/n/(ADJUST_REGRESSION)))))-y0;      //Beste til nå
+        double p_t = (((beta * y0))/(y0 +((beta- y0)*Math.exp(-alpha*(j-n)))))-y0;      //Beste til nå
 
 
         System.out.println("---------------------------");
         System.out.println("y0: " + y0);
         System.out.println("Alpha: " + alpha);
         System.out.println("Beta: " + beta);
-        System.out.println(p_t);
+        //System.out.println(p_t);
 
         return p_t;
 
     }
 
-    public static int getDataPoints() {
-        return dataPoints;
+    public static int getDataPointsXAxis() {
+        return dataPointsXAxis;
+    }
+
+    public static int getDataPointsYAxis() {
+        return dataPointsYAxis;
     }
 
     public static Map<String, Number> getLiveData() {
diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java
index b795ec3dd57730f274660ee66ea94c309ac7b5c7..aa32d722c051dfa27110356f8cab4e061cce63a7 100644
--- a/src/main/java/com/application/Main.java
+++ b/src/main/java/com/application/Main.java
@@ -24,7 +24,7 @@ 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.getDataPointsXAxis;
 import static com.application.GUI.LineChartFunctionality.getLiveData;
 import static java.util.logging.Level.SEVERE;
 
@@ -251,7 +251,7 @@ public class Main extends Application {
                             rpi.setProgress(progress);
                         });
 
-                        progress = getLiveData().size()/getDataPoints();
+                        progress = getLiveData().size()/ getDataPointsXAxis();
 
                         if (progress > 100) {
                             break;
diff --git a/src/main/resources/com.application/GUI/graphStyles.css b/src/main/resources/com.application/GUI/graphStyles.css
index ce64d11a6212e471d83818c65688d7718b717114..2629bcc4a515e757b35ca2a7152f29a05e24fbc3 100644
--- a/src/main/resources/com.application/GUI/graphStyles.css
+++ b/src/main/resources/com.application/GUI/graphStyles.css
@@ -15,9 +15,9 @@
 
 .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);}
-.default-color5.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
-.default-color6.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
-.default-color7.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
+.default-color2.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color3.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color4.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color5.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color6.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color7.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
diff --git a/target/classes/com.application/GUI/graphStyles.css b/target/classes/com.application/GUI/graphStyles.css
index bbef3d52ce4941ae4c58f31aa59e4f0e8b31486e..2629bcc4a515e757b35ca2a7152f29a05e24fbc3 100644
--- a/target/classes/com.application/GUI/graphStyles.css
+++ b/target/classes/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,11 +13,11 @@
 .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-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);}
-.default-color5.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
-.default-color6.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),rgba(0,168,355,0.3);}
-.default-color7.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),white;}
+.default-color3.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color4.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color5.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color6.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
+.default-color7.chart-line-symbol{-fx-background-color: rgba(0,168,355,0.3),white;}
diff --git a/target/classes/com/application/DB/Constants.class b/target/classes/com/application/DB/Constants.class
index 02c56a821341bc307e15807c05b63c49702bfc51..3b053db686018b72a73f6e868c762198503a508d 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/GUI/InputPopUpWindow.class b/target/classes/com/application/GUI/InputPopUpWindow.class
index 037171ffa7925880946ed5def0d7a08388321c3e..9842a47d800e544997e151418ed15de64d8ee3d9 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 125b40b88613c6967a6c7d4b98232326c6796831..fc06715ba9dfd5d758264f91fd1228deb018f988 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/Main$1WorkerThread.class b/target/classes/com/application/Main$1WorkerThread.class
index 8764a06752f05b58c77755135c22afadf0c8bbf2..b47d85b5fce893cc2f8bdd2faa64b9b4888b2eef 100644
Binary files a/target/classes/com/application/Main$1WorkerThread.class and b/target/classes/com/application/Main$1WorkerThread.class differ