diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java
index 988a4b0b78b5475bb8931dd28822c67fd5160300..19a1d0009fc5f504f8f36f412c2107376cfcdfa5 100644
--- a/src/main/java/com/application/GUI/LineChartFunctionality.java
+++ b/src/main/java/com/application/GUI/LineChartFunctionality.java
@@ -16,47 +16,73 @@ import org.jblas.Solve;
 
 import java.util.*;
 
-import static com.application.DB.Constants.ADJUST_REGRESSION;
-import static com.application.DB.Constants.CONFIDENCE_INTERVAL;
-
 public class LineChartFunctionality {
 
     private static LineChart<String, Number> lineChart;
     private static XYChart.Series<String, Number> liveDataSeries;
     private static XYChart.Series<String, Number> regressionSeries;
+    private static XYChart.Series<String, Number> regressionSeriesConfidenceInterval;
     private static CategoryAxis xAxis;
     private static NumberAxis yAxis;
     private static int dataPointsXAxis = 0;
     private static int dataPointsYAxis = 0;
     private static Map<String, Number> liveData;
+    private static ArrayList<XYChart.Series<String, Number>> previousData;
+
+    private static boolean printRegression;
+    private static boolean printRegressionConfidenceInterval;
+    private static boolean printLiveData;
+    private static boolean printPreviousData;
 
 
     public LineChartFunctionality() {
         xAxis = new CategoryAxis();
         yAxis = new NumberAxis();
         lineChart = new LineChart<>(xAxis, yAxis);
+        lineChart.setTitle("Drying Processes");
+        lineChart.setAnimated(false);
         xAxis.setLabel("Data Points");
         xAxis.setAnimated(false);
         yAxis.setLabel("Kwh");
         yAxis.setAnimated(false);
-        lineChart.setTitle("Drying Processes");
+
         regressionSeries = new XYChart.Series<String, Number>();
+        regressionSeriesConfidenceInterval = new XYChart.Series<String, Number>();
+        liveDataSeries = new XYChart.Series<String, Number>();
+        previousData = new ArrayList<>();
+
+        printRegression = true;
+        printRegressionConfidenceInterval = true;
+        printLiveData = true;
+        printPreviousData = true;
     }
 
 
-    public static LineChart<String, Number> getLineChart() {
-        return lineChart;
+    public static void printGraphs() {
+        clearLineChart();
+        if(printLiveData){
+            updateLineChart(getLiveDataSeries());
+        }
+        if(printRegression){
+            if (!printLiveData){updateLineChart(new XYChart.Series<>());}
+            updateLineChart(getRegressionSeries());
+        }
+        if(printRegressionConfidenceInterval){
+            if (!printLiveData){updateLineChart(new XYChart.Series<>());}
+            if (!printRegression){updateLineChart(new XYChart.Series<>());}
+            updateLineChart(getRegressionSeriesConfidenceInterval());
+        }
+        if(printPreviousData){
+            if (!printLiveData){updateLineChart(new XYChart.Series<>());}
+            if (!printRegression){updateLineChart(new XYChart.Series<>());}
+            if (!printRegressionConfidenceInterval){updateLineChart(new XYChart.Series<>());}
+            for (int i = 0; i < getPreviousData().size(); i++) {
+                updateLineChart(getPreviousData().get(i));
+            }
+        }
     }
 
-    public static void updateLineChart(XYChart.Series<String, Number> series) {
-        lineChart.getData().add(series);
-        series.getNode().setId("dataGraphs");
-        lineChart.getStylesheets().add(LineChartFunctionality.class.getResource("/com.application/GUI/graphStyles.css").toExternalForm());
-    }
 
-    public static void clearLineChart() {
-        lineChart.getData().clear();
-    }
 
     private static Map<Integer, ArrayList<Double>> statistics(Map<Integer, ArrayList<Double>> multiMap){
 
@@ -142,8 +168,10 @@ public class LineChartFunctionality {
         int numberOfGraphs = 0;
         ArrayList<Double> dataArraylistXAxis = new ArrayList<>();
         ArrayList<Double> dataArraylistYAxis = new ArrayList<>();
+        //ArrayList<Double> confidenceIntervalShadowArrayList = new ArrayList<>();
         Map<Integer, ArrayList<Double>> endOfGraphPointsXAxis = new HashMap<>();
         Map<Integer, ArrayList<Double>> endOfGraphPointsYAxis = new HashMap<>();
+        //Map<Integer, ArrayList<Double>> confidenceIntervalShadowMap = new HashMap<>();
         for (int i = 0; i < multiMap.size(); i++) {
             ArrayList<Double> list = multiMap.get(i);
             for (int j = 0; j < list.size(); j++) {
@@ -256,8 +284,7 @@ public class LineChartFunctionality {
         }
 
 
-        liveDataSeries = new XYChart.Series<String, Number>();
-        updateLineChart(liveDataSeries);
+        //updateLineChart(liveDataSeries);
 
 
         //XYChart.Series<String, Number> regressionSeries = new XYChart.Series<String, Number>();
@@ -292,7 +319,7 @@ public class LineChartFunctionality {
 
 
 
-            regressionSeries.getData().add(new XYChart.Data<String, Number>(
+            getRegressionSeries().getData().add(new XYChart.Data<String, Number>(
                     String.valueOf(i),
                     getNonLinearRegression(
                             confidenceIntervalData,
@@ -304,11 +331,12 @@ public class LineChartFunctionality {
 
 
         }
-        updateLineChart(regressionSeries);
+        //updateLineChart(getRegressionSeries());
         //lineChart.setOpacity(1);
 
 
 
+        getPreviousData().clear();
         for (Map.Entry<Integer, Map<String, Number>> entryKwh : userInput.entrySet()) {
             //System.out.println(data.size());
             XYChart.Series<String, Number> newSeries = new XYChart.Series<String, Number>();
@@ -322,8 +350,9 @@ public class LineChartFunctionality {
                 newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
                 index++;
             }
+            addPreviousData(newSeries);
             //allSeries.add(newSeries);
-            updateLineChart(newSeries);
+            //updateLineChart(newSeries);
             //lineChart.setOpacity(1);
         }
 
@@ -347,6 +376,8 @@ public class LineChartFunctionality {
 
         getTimeLeft(0);
 
+        printGraphs();
+
         return getLineChart();
     }
 
@@ -360,7 +391,7 @@ public class LineChartFunctionality {
             Double kwhValue = entryKwh.getValue().doubleValue();
             // Connect the data to a series
 
-            liveDataSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
+            getLiveDataSeries().getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
             index++;
         }
     }
@@ -539,4 +570,67 @@ public class LineChartFunctionality {
     public static XYChart.Series<String, Number> getRegressionSeries() {
         return regressionSeries;
     }
+
+    public static boolean isPrintRegression() {
+        return printRegression;
+    }
+
+    public static void setPrintRegression(boolean printRegression) {
+        LineChartFunctionality.printRegression = printRegression;
+    }
+
+    public static boolean isPrintRegressionConfidenceInterval() {
+        return printRegressionConfidenceInterval;
+    }
+
+    public static void setPrintRegressionConfidenceInterval(boolean printRegressionConfidenceInterval) {
+        LineChartFunctionality.printRegressionConfidenceInterval = printRegressionConfidenceInterval;
+    }
+
+    public static boolean isPrintLiveData() {
+        return printLiveData;
+    }
+
+    public static void setPrintLiveData(boolean printLiveData) {
+        LineChartFunctionality.printLiveData = printLiveData;
+    }
+
+    public static boolean isPrintPreviousData() {
+        return printPreviousData;
+    }
+
+    public static void setPrintPreviousData(boolean printPreviousData) {
+        LineChartFunctionality.printPreviousData = printPreviousData;
+    }
+
+    public static ArrayList<XYChart.Series<String, Number>> getPreviousData() {
+        return previousData;
+    }
+
+    public static void addPreviousData(XYChart.Series<String, Number> previousData) {
+        LineChartFunctionality.previousData.add(previousData);
+    }
+
+    public static XYChart.Series<String, Number> getRegressionSeriesConfidenceInterval() {
+        return regressionSeriesConfidenceInterval;
+    }
+
+    public static void setRegressionSeriesConfidenceInterval(XYChart.Series<String, Number> regressionSeriesConfidenceInterval) {
+        LineChartFunctionality.regressionSeriesConfidenceInterval = regressionSeriesConfidenceInterval;
+    }
+
+    public static LineChart<String, Number> getLineChart() {
+        return lineChart;
+    }
+
+    public static void updateLineChart(XYChart.Series<String, Number> series) {
+        lineChart.getData().add(series);
+        series.getNode().setId("dataGraphs");
+        lineChart.getStylesheets().add(LineChartFunctionality.class.getResource("/com.application/GUI/graphStyles.css").toExternalForm());
+    }
+
+    public static void clearLineChart() {
+        lineChart.getData().clear();
+        //lineChart.getData().
+    }
 }
diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java
index 4c8e32fa038e005d793a12bbfd02cc85b5b5baba..d24550fc9d29cff40c765264d656775955bdb501 100644
--- a/src/main/java/com/application/Main.java
+++ b/src/main/java/com/application/Main.java
@@ -319,46 +319,72 @@ public class Main extends Application {
 
         Label liveDataText = new Label("View Live Data");
         CheckBox liveDataBox = new CheckBox();
+        liveDataBox.setSelected(true);
         liveDataBox.setOnAction(event -> {
             if(liveDataBox.isSelected()){
-                if(LineChartFunctionality.getLineChart().getData().contains(LineChartFunctionality.getLiveDataSeries())){
+                System.out.println("Pressed");
+                LineChartFunctionality.setPrintLiveData(true);
+                LineChartFunctionality.printGraphs();
 
-                    System.out.println("@@@@");
-                    LineChartFunctionality.getLiveDataSeries().getNode().setVisible(!LineChartFunctionality.getLiveDataSeries().getNode().isVisible());
-                } else {
-
-                }
             } else {
                 System.out.println("not pressed");
+                LineChartFunctionality.setPrintLiveData(false);
+                LineChartFunctionality.printGraphs();
             }
 
         });
 
         Label regressionText = new Label("View Regression");
         CheckBox regressionBox = new CheckBox();
+        regressionBox.setSelected(true);
         regressionBox.setOnAction(event -> {
             if(regressionBox.isSelected()){
-                //System.out.println("@@@");
-                if(LineChartFunctionality.getLineChart().getData().contains(LineChartFunctionality.getRegressionSeries())){
-                    System.out.println("fant series");
-                    LineChartFunctionality.getRegressionSeries().getNode().setVisible(!LineChartFunctionality.getRegressionSeries().getNode().isVisible());
-                } else {
+                System.out.println("Pressed");
+                LineChartFunctionality.setPrintRegression(true);
+                LineChartFunctionality.printGraphs();
 
-                }
             } else {
                 System.out.println("not pressed");
+                LineChartFunctionality.setPrintRegression(false);
+                LineChartFunctionality.printGraphs();
             }
 
         });
 
+        Label regressionConfidenceIntervalText = new Label("View Regression Shadow");
+        CheckBox regressionConfidenceIntervalBox = new CheckBox();
+        regressionConfidenceIntervalBox.setSelected(true);
+        regressionConfidenceIntervalBox.setOnAction(event -> {
+            if(regressionConfidenceIntervalBox.isSelected()){
+                System.out.println("Pressed");
+                LineChartFunctionality.setPrintRegressionConfidenceInterval(true);
+                LineChartFunctionality.printGraphs();
+
+            } else {
+                System.out.println("not pressed");
+                LineChartFunctionality.setPrintRegressionConfidenceInterval(false);
+                LineChartFunctionality.printGraphs();
+            }
+        });
+
         Label previousText = new Label("View Previous Data");
         CheckBox previousBox = new CheckBox();
+        previousBox.setSelected(true);
         previousBox.setOnAction(event -> {
+            if(previousBox.isSelected()){
+                System.out.println("Pressed");
+                LineChartFunctionality.setPrintPreviousData(true);
+                LineChartFunctionality.printGraphs();
 
+            } else {
+                System.out.println("not pressed");
+                LineChartFunctionality.setPrintPreviousData(false);
+                LineChartFunctionality.printGraphs();
+            }
         });
 
 
-        hBox.getChildren().addAll(liveDataText, liveDataBox, regressionText, regressionBox, previousText, previousBox);
+        hBox.getChildren().addAll(liveDataText, liveDataBox, regressionText, regressionBox, regressionConfidenceIntervalText, regressionConfidenceIntervalBox, previousText, previousBox);
         hBox.setAlignment(Pos.CENTER_RIGHT);
         hBox.setSpacing(5);
 
diff --git a/src/main/resources/com.application/GUI/graphStyles.css b/src/main/resources/com.application/GUI/graphStyles.css
index fbc50cdb17da7664837fcf7e3b83160e96b07869..e59a1618e2b809ab8427f1604320facf2e22bc5f 100644
--- a/src/main/resources/com.application/GUI/graphStyles.css
+++ b/src/main/resources/com.application/GUI/graphStyles.css
@@ -11,7 +11,7 @@
 
 .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-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
+.default-color2.chart-earlier-data-line{-fx-stroke: black; -fx-opacity: 0.1}
 .default-color3.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 .default-color4.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 .default-color5.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
@@ -20,7 +20,7 @@
 
 .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-color2.chart-line-symbol{-fx-background-color: black,black;}
 .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;}
diff --git a/target/classes/com.application/GUI/graphStyles.css b/target/classes/com.application/GUI/graphStyles.css
index fbc50cdb17da7664837fcf7e3b83160e96b07869..e59a1618e2b809ab8427f1604320facf2e22bc5f 100644
--- a/target/classes/com.application/GUI/graphStyles.css
+++ b/target/classes/com.application/GUI/graphStyles.css
@@ -11,7 +11,7 @@
 
 .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-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
+.default-color2.chart-earlier-data-line{-fx-stroke: black; -fx-opacity: 0.1}
 .default-color3.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 .default-color4.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
 .default-color5.chart-earlier-data-line{-fx-stroke: rgba(0,168,355,0.3); -fx-opacity: 0.1}
@@ -20,7 +20,7 @@
 
 .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-color2.chart-line-symbol{-fx-background-color: black,black;}
 .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;}