diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java
index 6bb20e4221f738eb7c4a70ccccc93791cde4adcc..97da74c3829343d720488994a7720a4b5c7fa817 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java
@@ -14,6 +14,7 @@ import javafx.scene.control.cell.PropertyValueFactory;
 import javafx.stage.Modality;
 import javafx.stage.Stage;
 import no.ntnu.idatt1002.demo.data.Budget.BudgetItem;
+import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget;
 import no.ntnu.idatt1002.demo.data.Budget.GeneralBudget;
 import no.ntnu.idatt1002.demo.data.Economics.Expense;
 import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory;
@@ -23,11 +24,13 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import no.ntnu.idatt1002.demo.data.Economics.FileHandling;
+import no.ntnu.idatt1002.demo.data.Economics.IncomeRegister;
 
 public class BudgetController {
 
     private DialogMode dialogMode;
-    private GeneralBudget general = new GeneralBudget(31, 2000);
+    private GeneralBudget general;
 
     @FXML
     private Button addBudget;
@@ -77,12 +80,13 @@ public class BudgetController {
 
 
     public void initialize() throws IOException {
-        budgetList = FXCollections.observableArrayList(general.getBudgetItems());
-        budgetTableView.setItems(budgetList);
-
         categoryColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, ExpenseCategory>("budgetCategory"));
         amountColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, Double>("budgetAmount"));
         descriptionColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, String>("budgetDescription"));
+
+        general = loadIncomeDataFromFile("Budget");
+        budgetList = FXCollections.observableArrayList(general.getBudgetItems());
+        budgetTableView.setItems(budgetList);
     }
     @FXML
     public void switchAddBudget(javafx.event.ActionEvent event) throws IOException {
@@ -167,6 +171,26 @@ public class BudgetController {
     }
 
 
+    public GeneralBudget loadIncomeDataFromFile(String fileName) throws IOException {
+        FileHandlingBudget fileHandlingBudget = new FileHandlingBudget();
+        if (fileHandlingBudget.isEmpty(fileName)) {
+            general = new GeneralBudget(31, 1000);
+        } else {
+            try {
+                general = fileHandlingBudget.readGeneralBudgetFromFile(fileName);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return general;
+    }
+
+    public void saveDataToFile(String fileName) throws IOException {
+        FileHandlingBudget fileHandlingBudget = new FileHandlingBudget();
+        fileHandlingBudget.writeGeneralBudgetToFile(fileName, general);
+    }
+
+
     protected void refreshObservableList(){
         budgetTableView.setItems(budgetList);
         this.budgetList.setAll(general.getBudgetItems());
@@ -174,7 +198,7 @@ public class BudgetController {
 
    @FXML
     public void switchScene(ActionEvent event) throws IOException {
-        //saveDataToFile("Income");
+        //saveDataToFile("Budget");
         FXMLLoader loader = new FXMLLoader();
         if (event.getSource() == expenseBtn) {
             loader.setLocation(SceneController.class.getResource("/view/Expenses.fxml"));
diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeController.java
index 1fcb3f6ce88085959499c682f3c29b8c9f15403b..457da80f9451905c12c2222250d58e679a19c60c 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeController.java
@@ -82,23 +82,22 @@ public class IncomeController {
   ObservableList<String> filter;
 
   @FXML
-  public void initialize()
-      throws IOException { //TODO SAME REGISTER FOR BOTH, BUT LOAD DIFFERENT DATA DEPENDING ON WHICH IT IS
+  public void initialize() throws IOException { //TODO SAME REGISTER FOR BOTH, BUT LOAD DIFFERENT DATA DEPENDING ON WHICH IT IS
     dateColumn.setCellValueFactory(new PropertyValueFactory<Income, String>("date"));
     amountColumn.setCellValueFactory(new PropertyValueFactory<Income, Double>("amount"));
-    categoryColumn.setCellValueFactory(
-        new PropertyValueFactory<Income, IncomeCategory>("category"));
+    categoryColumn.setCellValueFactory(new PropertyValueFactory<Income, IncomeCategory>("category"));
     descriptionColumn.setCellValueFactory(new PropertyValueFactory<Income, String>("description"));
     recurringColumn.setCellValueFactory(new PropertyValueFactory<Income, Boolean>("recurring"));
 
-    filter = FXCollections.observableArrayList("All", "Gift", "Salary", "Student loan",
-        "Fixed income");
+    filter = FXCollections.observableArrayList("All", "Gift", "Salary", "Student loan", "Fixed income");
     incomeRegister = loadIncomeDataFromFile("Income");
     income = FXCollections.observableArrayList(incomeRegister.getItems());
     incomeTableView.setItems(income);
 
     show.setItems(filter);
     show.setValue("All");
+
+    //if budget.register isEmpty -> disable expense
   }
 
   @FXML
@@ -179,10 +178,10 @@ public class IncomeController {
   }
 
   public IncomeRegister loadIncomeDataFromFile(String fileName) throws IOException {
-    //ItemRegister<T extends Item>
     FileHandling fileHandling = new FileHandling();
     if (fileHandling.isEmpty(fileName)) {
       incomeRegister = new IncomeRegister();
+      System.out.println("hey");
     } else {
       try {
         incomeRegister = fileHandling.readIncomeRegisterFromFile(fileName);