diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java
index eec2668bd3c0d944c78628c3b1cc3a4f9c570f56..d9281ff120c6c45de19cf9693cdabd8892a3662d 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java
@@ -58,8 +58,34 @@ public class AddBudgetController {
             String description = descriptionVariable.getText();
             newBudgetItem = new BudgetItem(amount, description, category);
         }
+        if(chosenBudgetItem != null){
+            chosenBudgetItem.setBudgetAmount(Double.parseDouble(amountVariable.getText()));
+            chosenBudgetItem.setBudgetDescription(descriptionVariable.getText());
+            chosenBudgetItem.setBudgetCategory(categoryVariable.getValue());
+        }
         final Node source = (Node) event.getSource();
         final Stage stage = (Stage) source.getScene().getWindow();
         stage.close();
     }
+
+    @FXML
+    public void setBudget(BudgetItem item){
+        chosenBudgetItem = new BudgetItem(item.getBudgetAmount(), item.getBudgetDescription(), item.getBudgetCategory());
+        chosenBudgetItem.getAmountProperty().bindBidirectional(item.getAmountProperty());
+        chosenBudgetItem.getDescriptionProperty().bindBidirectional(item.getDescriptionProperty());
+        chosenBudgetItem.getCategoryProperty().bindBidirectional(item.getCategoryProperty());
+        amountVariable.textProperty().set(String.valueOf(item.getBudgetAmount()));
+        descriptionVariable.textProperty().set(item.getBudgetDescription());
+        categoryVariable.setValue(item.getBudgetCategory());
+
+
+    }
+
+
+
+    public void closeButton(ActionEvent actionEvent) {
+        final Node source = (Node) actionEvent.getSource();
+        final Stage stage = (Stage) source.getScene().getWindow();
+        stage.close();
+    }
 }
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 2c3c80c0c984b817016a88c90b28eaaae18cedd9..821fe2cfb5f3e40ab4de5f2526cc199013fe2765 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java
@@ -2,6 +2,7 @@ package no.ntnu.idatt1002.demo.controller;
 
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
+import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Node;
@@ -11,6 +12,7 @@ import javafx.stage.Modality;
 import javafx.stage.Stage;
 import no.ntnu.idatt1002.demo.data.Budget.BudgetItem;
 import no.ntnu.idatt1002.demo.data.Budget.GeneralBudget;
+import no.ntnu.idatt1002.demo.data.Economics.Expense;
 import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory;
 
 
@@ -32,6 +34,9 @@ public class BudgetController {
     @FXML
     private Button addBudget;
 
+    @FXML
+    private Button editBudget;
+
     @FXML
     private TableColumn<BudgetItem, Double> amountColumn;
 
@@ -65,9 +70,9 @@ public class BudgetController {
         budgetList = FXCollections.observableArrayList(listOfBudgetItems);
         budgetTableView.setItems(budgetList);
 
-        categoryColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, ExpenseCategory>("category"));
+        categoryColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, ExpenseCategory>("budgetCategory"));
         amountColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, Double>("budgetAmount"));
-        descriptionColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, String>("description"));
+        descriptionColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, String>("budgetDescription"));
     }
     @FXML
     public void switchAddBudget(javafx.event.ActionEvent event) throws IOException {
@@ -90,6 +95,14 @@ public class BudgetController {
             dialogTitle = "New Budget";
 
         }
+        else if (event.getSource().equals(editBudget)) {
+            dialogMode = DialogMode.EDIT;
+            dialogTitle = "Edit expense";
+            item = budgetTableView.getSelectionModel().getSelectedItem();
+            budgetController.setBudget(item);
+        } else {
+            return;
+        }
 
         dialog.setTitle(dialogTitle);
         dialog.showAndWait();
@@ -97,8 +110,8 @@ public class BudgetController {
         item = budgetController.getNewBudgetItem();
         if(item != null && dialogMode == DialogMode.ADD){
             listOfBudgetItems.add(item);
-            refreshObservableList();
         }
+        refreshObservableList();
     }
 
     @FXML
diff --git a/src/main/resources/view/AddBudget.fxml b/src/main/resources/view/AddBudget.fxml
index 90dbc58d648951cdcfba279366d8258e256174e1..96e52a73c5c6b258612b7e8a231dd91f8eb5d5fb 100644
--- a/src/main/resources/view/AddBudget.fxml
+++ b/src/main/resources/view/AddBudget.fxml
@@ -47,7 +47,7 @@
             </VBox>
             <HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="15.0" GridPane.columnIndex="3" GridPane.rowIndex="1">
                <children>
-                  <Button fx:id="cancelButton" mnemonicParsing="false" text="Cancel" />
+                  <Button fx:id="cancelButton" mnemonicParsing="false" onAction="#closeButton" text="Cancel" />
                   <Button fx:id="addButton" mnemonicParsing="false" onAction="#addBudget" text="Add New Budget" />
                </children>
             </HBox>
diff --git a/src/main/resources/view/Budget.fxml b/src/main/resources/view/Budget.fxml
index fad58615d9fa316c299b79960f0b6c12bec0c1e4..5138187cb26c246e63446b3b6c59a719b57c2846 100644
--- a/src/main/resources/view/Budget.fxml
+++ b/src/main/resources/view/Budget.fxml
@@ -36,7 +36,7 @@
             <HBox alignment="TOP_CENTER" prefHeight="98.0" prefWidth="600.0" spacing="40.0" GridPane.rowIndex="3">
                <children>
                   <Button fx:id="addBudget" minHeight="60.0" minWidth="100.0" mnemonicParsing="false" onAction="#switchAddBudget" prefWidth="100.0" text="Add Budget Item" />
-                  <Button minHeight="60.0" minWidth="100.0" mnemonicParsing="false" prefWidth="100.0" text="Edit/Remove" />
+                  <Button fx:id="editBudget" minHeight="60.0" minWidth="100.0" mnemonicParsing="false" onAction="#switchAddBudget" prefWidth="100.0" text="Edit/Remove" />
                   <Button minHeight="60.0" minWidth="100.0" mnemonicParsing="false" prefWidth="100.0" text="Save/Back" />
                </children>
             </HBox>