diff --git a/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java b/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java
index fe6df24d614f0b2d22c076dea276601a574142c1..0781ae4ab2ab2b2331eaeffcc797bc88ebc65a29 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/authentication/User.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.authentication;
 
-import de.deadlocker8.budgetmaster.entities.Account;
+import de.deadlocker8.budgetmaster.entities.account.Account;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
index 373701e24f5ff2b9a0c0188003af11d61531e5f1..cf8d42317741058026b926ba38dd040926574efe 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.controller;
 
-import de.deadlocker8.budgetmaster.entities.Account;
-import de.deadlocker8.budgetmaster.entities.AccountType;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
 import de.deadlocker8.budgetmaster.repositories.AccountRepository;
 import de.deadlocker8.budgetmaster.services.AccountService;
 import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException;
@@ -12,7 +12,6 @@ import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.FieldError;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
index a4bb5e5dfab31f15ee0a31afca797980cbeb6d82..b9a26510eb7119f915465985c79898443cefed9f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.controller;
 
-import de.deadlocker8.budgetmaster.entities.Category;
-import de.deadlocker8.budgetmaster.entities.CategoryType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.services.CategoryService;
 import de.deadlocker8.budgetmaster.services.HelpersService;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
index 5935d9e87a00eb80ebcb17408660d592c1243c44..dd4812e619bcfcddfaa61b37f5e2ff99f29b44cc 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
@@ -1,8 +1,11 @@
 package de.deadlocker8.budgetmaster.controller;
 
-import de.deadlocker8.budgetmaster.reports.ReportSettings;
+import de.deadlocker8.budgetmaster.entities.report.ReportColumn;
+import de.deadlocker8.budgetmaster.entities.report.ReportSettings;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
 import de.deadlocker8.budgetmaster.services.HelpersService;
+import de.deadlocker8.budgetmaster.services.report.ReportColumnService;
+import de.deadlocker8.budgetmaster.services.report.ReportSettingsService;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -20,6 +23,12 @@ public class ReportController extends BaseController
 	@Autowired
 	private SettingsRepository settingsRepository;
 
+	@Autowired
+	private ReportSettingsService reportSettingsService;
+
+	@Autowired
+	private ReportColumnService reportColumnService;
+
 	@Autowired
 	private HelpersService helpers;
 
@@ -28,22 +37,22 @@ public class ReportController extends BaseController
 	{
 		DateTime date = helpers.getDateTimeFromCookie(cookieDate);
 
-		ReportSettings reportSettings = new ReportSettings();
-
-		model.addAttribute("reportSettings", reportSettings);
+		model.addAttribute("reportSettings", reportSettingsService.getReportSettings());
 		model.addAttribute("currentDate", date);
 		return "reports/reports";
 	}
 
 	@RequestMapping(value = "/reports/generate", method = RequestMethod.POST)
 	public String post(Model model,
-					   @CookieValue(value = "currentDate", required = false) String cookieDate,
 					   @ModelAttribute("NewReportSettings") ReportSettings reportSettings,
 					   BindingResult bindingResult)
 	{
-		DateTime date = helpers.getDateTimeFromCookie(cookieDate);
-
-		System.out.println(reportSettings);
+		reportSettingsService.getRepository().delete(0);
+		for(ReportColumn reportColumn : reportSettings.getColumns())
+		{
+			reportColumnService.getRepository().save(reportColumn);
+		}
+		reportSettingsService.getRepository().save(reportSettings);
 
 		return "redirect:/reports";
 	}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
index e515416b137e7a4a4a298c3c6d56912e6f5fa626..587b9c2891f2eafbd04949646be969444f508a9d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
@@ -6,7 +6,7 @@ import de.deadlocker8.budgetmaster.authentication.UserRepository;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.database.DatabaseParser;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList;
-import de.deadlocker8.budgetmaster.entities.CategoryType;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
 import de.deadlocker8.budgetmaster.services.*;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/Database.java b/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
index bf590ae498c328cdc550060e7dc67599baee7834..6b5f9bb87b45449b1441f97329bacf89dd5daeda 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
@@ -1,8 +1,8 @@
 package de.deadlocker8.budgetmaster.database;
 
 import com.google.gson.annotations.Expose;
-import de.deadlocker8.budgetmaster.entities.Account;
-import de.deadlocker8.budgetmaster.entities.Category;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.entities.Transaction;
 
 import java.util.List;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
index 627edfd513a219def12ea3bf5f9677725f5bb153..71032960b1d1ae930a30b7fbe263f22dcc8ac77f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
@@ -3,7 +3,7 @@ package de.deadlocker8.budgetmaster.database;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import de.deadlocker8.budgetmaster.database.legacy.LegacyParser;
-import de.deadlocker8.budgetmaster.entities.Category;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.thecodelabs.utils.util.Localization;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
index b59c0b81efca6116748e047d19ab41ac8c78acb3..2cf160d5efcb722526546cf332ed814ba6e563ba 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
@@ -2,6 +2,8 @@ package de.deadlocker8.budgetmaster.database;
 
 import com.google.gson.*;
 import de.deadlocker8.budgetmaster.entities.*;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.endoption.*;
 import de.deadlocker8.budgetmaster.repeating.modifier.*;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/accountmatches/AccountMatch.java b/src/main/java/de/deadlocker8/budgetmaster/database/accountmatches/AccountMatch.java
index 2cc9da1bccdf9aa74c29f4100cc867419c0f1c99..a3c7a937d18058065009879362d2befc88052ba7 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/accountmatches/AccountMatch.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/accountmatches/AccountMatch.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.database.accountmatches;
 
-import de.deadlocker8.budgetmaster.entities.Account;
+import de.deadlocker8.budgetmaster.entities.account.Account;
 
 public class AccountMatch
 {
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
index 1ac87533be68a0edc6145e173c894a1852b9bdfa..6b5d1720928e8b2ab830261c0472cf818bafa446 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
@@ -6,6 +6,10 @@ import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.entities.*;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndDate;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndNever;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/AccountType.java b/src/main/java/de/deadlocker8/budgetmaster/entities/AccountType.java
deleted file mode 100644
index 5accc8789b2822eae798d5295104428a2e588aae..0000000000000000000000000000000000000000
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/AccountType.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.entities;
-
-
-public enum AccountType
-{
-	ALL, CUSTOM
-}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/CategoryType.java b/src/main/java/de/deadlocker8/budgetmaster/entities/CategoryType.java
deleted file mode 100644
index f8a89f21046dcd1627bd15114507ae0e165bd0ec..0000000000000000000000000000000000000000
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/CategoryType.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.entities;
-
-
-public enum CategoryType
-{
-	NONE, REST, CUSTOM
-}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/Transaction.java b/src/main/java/de/deadlocker8/budgetmaster/entities/Transaction.java
index 935e46c401bf2505634236b0e97b4a73aa847b61..a29cb8562ddd0268d39c24ed5befa4b1af13c1d3 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/Transaction.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/Transaction.java
@@ -1,6 +1,8 @@
 package de.deadlocker8.budgetmaster.entities;
 
 import com.google.gson.annotations.Expose;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/Account.java b/src/main/java/de/deadlocker8/budgetmaster/entities/account/Account.java
similarity index 94%
rename from src/main/java/de/deadlocker8/budgetmaster/entities/Account.java
rename to src/main/java/de/deadlocker8/budgetmaster/entities/account/Account.java
index b028964c91ce0531e222729a64a665cba7b52b9d..b21929d90183f243308cf30dbd28ab9aed95b819 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/Account.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/account/Account.java
@@ -1,6 +1,7 @@
-package de.deadlocker8.budgetmaster.entities;
+package de.deadlocker8.budgetmaster.entities.account;
 
 import com.google.gson.annotations.Expose;
+import de.deadlocker8.budgetmaster.entities.Transaction;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/account/AccountType.java b/src/main/java/de/deadlocker8/budgetmaster/entities/account/AccountType.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2bc80771e18bfdf6fb8e5d4e6245a07eab469bb
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/account/AccountType.java
@@ -0,0 +1,7 @@
+package de.deadlocker8.budgetmaster.entities.account;
+
+
+public enum AccountType
+{
+	ALL, CUSTOM
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/Category.java b/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
similarity index 95%
rename from src/main/java/de/deadlocker8/budgetmaster/entities/Category.java
rename to src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
index e5901de2fa04f768df423105ca5a63051b99cba9..c12c235c943519026d2005a58b50ed87d11b7ec9 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/Category.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
@@ -1,6 +1,7 @@
-package de.deadlocker8.budgetmaster.entities;
+package de.deadlocker8.budgetmaster.entities.category;
 
 import com.google.gson.annotations.Expose;
+import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.thecodelabs.utils.util.ColorUtils;
 import javafx.scene.paint.Color;
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/category/CategoryType.java b/src/main/java/de/deadlocker8/budgetmaster/entities/category/CategoryType.java
new file mode 100644
index 0000000000000000000000000000000000000000..b484e7fb3853f879ba8872050593c181d66c4ee9
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/category/CategoryType.java
@@ -0,0 +1,7 @@
+package de.deadlocker8.budgetmaster.entities.category;
+
+
+public enum CategoryType
+{
+	NONE, REST, CUSTOM
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/report/ReportColumn.java b/src/main/java/de/deadlocker8/budgetmaster/entities/report/ReportColumn.java
new file mode 100644
index 0000000000000000000000000000000000000000..fe89566c4bac4d17777a75adeb8e312f4f9f6dba
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/report/ReportColumn.java
@@ -0,0 +1,81 @@
+package de.deadlocker8.budgetmaster.entities.report;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+public class ReportColumn
+{
+	@Id
+	@GeneratedValue(strategy = GenerationType.AUTO)
+	private Integer ID;
+
+	private String key;
+	private boolean activated;
+	private int position;
+
+	@OneToMany(mappedBy = "columns", fetch = FetchType.LAZY)
+	private transient List<ReportSettings> referringSettings;
+
+	public ReportColumn(String key, int position)
+	{
+		this.key = key;
+		this.activated = true;
+		this.position = position;
+	}
+
+	public ReportColumn()
+	{
+	}
+
+	public Integer getID()
+	{
+		return ID;
+	}
+
+	public void setID(Integer ID)
+	{
+		this.ID = ID;
+	}
+
+	public String getKey()
+	{
+		return key;
+	}
+
+	public void setKey(String key)
+	{
+		this.key = key;
+	}
+
+	public boolean isActivated()
+	{
+		return activated;
+	}
+
+	public void setActivated(boolean activated)
+	{
+		this.activated = activated;
+	}
+
+	public int getPosition()
+	{
+		return position;
+	}
+
+	public void setPosition(int position)
+	{
+		this.position = position;
+	}
+
+	@Override
+	public String toString()
+	{
+		return "ReportColumn{" +
+				"ID=" + ID +
+				", key='" + key + '\'' +
+				", activated=" + activated +
+				", position=" + position +
+				'}';
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportSettings.java b/src/main/java/de/deadlocker8/budgetmaster/entities/report/ReportSettings.java
similarity index 57%
rename from src/main/java/de/deadlocker8/budgetmaster/reports/ReportSettings.java
rename to src/main/java/de/deadlocker8/budgetmaster/entities/report/ReportSettings.java
index d6cab259e9fa697a67cbf3a86f3878fcb3296320..7ddead4f055d4c2ab0c319c29168b1c8921ab65d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportSettings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/report/ReportSettings.java
@@ -1,51 +1,57 @@
-package de.deadlocker8.budgetmaster.reports;
+package de.deadlocker8.budgetmaster.entities.report;
 
 import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import java.util.HashMap;
-import java.util.Map;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
 
+@Entity
 public class ReportSettings
 {
+	@Id
+	private Integer ID;
+
 	@DateTimeFormat(pattern = "dd.MM.yyyy")
 	private DateTime date;
+
 	private boolean includeBudget;
 	private boolean splitTables;
 	private boolean includeCategoryBudgets;
 
-	private Map<String, ReportColumn> columns;
+	@OneToMany
+	private List<ReportColumn> columns;
 
+	public static ReportSettings getDefault()
+	{
+		return new ReportSettings(DateTime.now(), true, true, true);
+	}
 
-	public ReportSettings(DateTime date, boolean includeBudget, boolean splitTables, boolean includeCategoryBudgets)
+	private ReportSettings(DateTime date, boolean includeBudget, boolean splitTables, boolean includeCategoryBudgets)
 	{
 		this.date = date;
 		this.includeBudget = includeBudget;
 		this.splitTables = splitTables;
 		this.includeCategoryBudgets = includeCategoryBudgets;
-
-		initColumns();
+		this.columns = new ArrayList<>();
 	}
 
 	public ReportSettings()
 	{
-		initColumns();
 	}
 
-	private void initColumns()
+	public Integer getID()
 	{
-		this.columns = new HashMap<>();
+		return ID;
+	}
 
-		this.columns.put("report.position", new ReportColumn());
-		this.columns.put("report.date", new ReportColumn());
-		this.columns.put("report.repeating", new ReportColumn());
-		this.columns.put("report.name", new ReportColumn());
-		this.columns.put("report.category", new ReportColumn());
-		this.columns.put("report.description", new ReportColumn());
-		this.columns.put("report.tags", new ReportColumn());
-		this.columns.put("report.account", new ReportColumn());
-		this.columns.put("report.rating", new ReportColumn());
-		this.columns.put("report.amount", new ReportColumn());
+	public void setID(Integer ID)
+	{
+		this.ID = ID;
 	}
 
 	public DateTime getDate()
@@ -88,12 +94,18 @@ public class ReportSettings
 		this.includeCategoryBudgets = includeCategoryBudgets;
 	}
 
-	public Map<String, ReportColumn> getColumns()
+	public List<ReportColumn> getColumnsSorted()
+	{
+		columns.sort(Comparator.comparing(ReportColumn::getPosition));
+		return columns;
+	}
+
+	public List<ReportColumn> getColumns()
 	{
-		return this.columns;
+		return columns;
 	}
 
-	public void setColumns(Map<String, ReportColumn> columns)
+	public void setColumns(List<ReportColumn> columns)
 	{
 		this.columns = columns;
 	}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportColumn.java b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportColumn.java
deleted file mode 100644
index 55cb047131da93596166529ea1aac1539a191d94..0000000000000000000000000000000000000000
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportColumn.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.deadlocker8.budgetmaster.reports;
-
-public class ReportColumn
-{
-	private boolean activated;
-	private int position;
-
-	public boolean isActivated()
-	{
-		return activated;
-	}
-
-	public void setActivated(boolean activated)
-	{
-		this.activated = activated;
-	}
-
-	public int getPosition()
-	{
-		return position;
-	}
-
-	public void setPosition(int position)
-	{
-		this.position = position;
-	}
-
-	@Override
-	public String toString()
-	{
-		return "ReportColumn{" +
-				"activated=" + activated +
-				", position=" + position +
-				'}';
-	}
-}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportItem.java b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportItem.java
index 08ced7b10e18953f1ad662c298f2a3693ccae8d4..3223635cc1cabcb2879fcd02b6898429e4c1a23b 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportItem.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportItem.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.reports;
 
 
-import de.deadlocker8.budgetmaster.entities.Category;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 
 public class ReportItem
 {
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java
index 9cea8a0b78400910e8c8fa1bc617f5bdafa1992a..ffd550e3c5a28e6fdf980ca4ca9e25d3516afb05 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.repositories;
 
-import de.deadlocker8.budgetmaster.entities.Account;
-import de.deadlocker8.budgetmaster.entities.AccountType;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import java.util.List;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/CategoryRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/CategoryRepository.java
index 6374a1a3e4c54b2c21920b78b0957e12761ca63b..2e39888b5650bb0c1ede81936dbf9d6471edd99b 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repositories/CategoryRepository.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/CategoryRepository.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.repositories;
 
-import de.deadlocker8.budgetmaster.entities.Category;
-import de.deadlocker8.budgetmaster.entities.CategoryType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import java.util.List;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/TransactionRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/TransactionRepository.java
index b5adae4505f9e58d2a96d07793832456e512d665..068cda13ff864114d0159050c01fecb34a8942a6 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repositories/TransactionRepository.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/TransactionRepository.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.repositories;
 
-import de.deadlocker8.budgetmaster.entities.Account;
+import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.Transaction;
 import org.joda.time.DateTime;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/report/ReportColumnRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/report/ReportColumnRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbc6e393053ef25dfbcddf50ba049e23c8500a5b
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/report/ReportColumnRepository.java
@@ -0,0 +1,16 @@
+package de.deadlocker8.budgetmaster.repositories.report;
+
+import de.deadlocker8.budgetmaster.entities.report.ReportColumn;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+
+public interface ReportColumnRepository extends JpaRepository<ReportColumn, Integer>
+{
+	List<ReportColumn> findAllByOrderByPositionAsc();
+
+	ReportColumn findByKey(String key);
+
+	ReportColumn findByPosition(int position);
+}
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/report/ReportSettingsRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/report/ReportSettingsRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..965ef7d61f2315e2a59580108bb8296786c6a8f0
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/report/ReportSettingsRepository.java
@@ -0,0 +1,9 @@
+package de.deadlocker8.budgetmaster.repositories.report;
+
+import de.deadlocker8.budgetmaster.entities.report.ReportSettings;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+
+public interface ReportSettingsRepository extends JpaRepository<ReportSettings, Integer>
+{
+}
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
index 119454e300dc56db2376d837f7ac7b5d358b9737..2a055697746db77067cc42886ce28208662bbca8 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
@@ -2,8 +2,8 @@ package de.deadlocker8.budgetmaster.services;
 
 import de.deadlocker8.budgetmaster.authentication.User;
 import de.deadlocker8.budgetmaster.authentication.UserRepository;
-import de.deadlocker8.budgetmaster.entities.Account;
-import de.deadlocker8.budgetmaster.entities.AccountType;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
 import de.deadlocker8.budgetmaster.repositories.AccountRepository;
 import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
index 9edc8f174b18d9b38280090e72fe43f55cfea12f..e92da3ae73b5245bdb27b46681ef691ae2f45ce9 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.services;
 
-import de.deadlocker8.budgetmaster.entities.Category;
-import de.deadlocker8.budgetmaster.entities.CategoryType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
index 33cc5b2829044d3b101f438e4c3309855c93608d..2f957ed20d32cc05e7c1995e7c8896f2d56098a2 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
@@ -2,8 +2,8 @@ package de.deadlocker8.budgetmaster.services;
 
 import com.google.gson.*;
 import de.deadlocker8.budgetmaster.database.Database;
-import de.deadlocker8.budgetmaster.entities.Account;
-import de.deadlocker8.budgetmaster.entities.Category;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import org.joda.time.DateTime;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
index af45e2880ace15d3a1cc59364fa8e315fdef4827..32ce882fd3ba57918c0c6e31e36516b3029b94f0 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
@@ -1,5 +1,8 @@
 package de.deadlocker8.budgetmaster.services;
 
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.update.BudgetMasterUpdateService;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatch;
 import de.deadlocker8.budgetmaster.entities.*;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
index dd65345886a2a7dad19cf92de2ded65074bde465..7bca23a74a5450c44bb1932238e77ec7836141a4 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
@@ -3,8 +3,8 @@ package de.deadlocker8.budgetmaster.services;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatch;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList;
-import de.deadlocker8.budgetmaster.entities.Category;
-import de.deadlocker8.budgetmaster.entities.CategoryType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.entities.Tag;
 import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java b/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java
index 9addb0d6d7ab5532fd119aa09749bccc42dd6133..43599d9878015728ab5605e0fe47cde827f9944f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java
@@ -20,7 +20,7 @@ public class SettingsService
 		createDefaultSettingsIfNotExists();
 	}
 
-	public void createDefaultSettingsIfNotExists()
+	private void createDefaultSettingsIfNotExists()
 	{
 		if(settingsRepository.findOne(0) == null)
 		{
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
index f65eb41692379fb7dbb07279dc1dc473f257319c..37a21a99c5cb5d9d09b7bcaff1e55348ddf1ee0c 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
@@ -1,8 +1,8 @@
 package de.deadlocker8.budgetmaster.services;
 
-import de.deadlocker8.budgetmaster.entities.Account;
-import de.deadlocker8.budgetmaster.entities.AccountType;
-import de.deadlocker8.budgetmaster.entities.CategoryType;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.RepeatingOptionRepository;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportColumnService.java b/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportColumnService.java
new file mode 100644
index 0000000000000000000000000000000000000000..6d08a02f4f6700ca774122d7f48aabd093e28ab3
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportColumnService.java
@@ -0,0 +1,54 @@
+package de.deadlocker8.budgetmaster.services.report;
+
+import de.deadlocker8.budgetmaster.entities.report.ReportColumn;
+import de.deadlocker8.budgetmaster.repositories.report.ReportColumnRepository;
+import de.deadlocker8.budgetmaster.services.Resetable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ReportColumnService implements Resetable
+{
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
+	private ReportColumnRepository reportColumnRepository;
+
+	@Autowired
+	public ReportColumnService(ReportColumnRepository reportColumnRepository)
+	{
+		this.reportColumnRepository = reportColumnRepository;
+
+		createDefaults();
+	}
+
+	public ReportColumnRepository getRepository()
+	{
+		return reportColumnRepository;
+	}
+
+	@Override
+	public void deleteAll()
+	{
+	}
+
+	@Override
+	public void createDefaults()
+	{
+		if(reportColumnRepository.findAllByOrderByPositionAsc().size() == 0)
+		{
+			reportColumnRepository.save(new ReportColumn("report.position", 0));
+			reportColumnRepository.save(new ReportColumn("report.date", 1));
+			reportColumnRepository.save(new ReportColumn("report.repeating", 2));
+			reportColumnRepository.save(new ReportColumn("report.name", 3));
+			reportColumnRepository.save(new ReportColumn("report.category", 4));
+			reportColumnRepository.save(new ReportColumn("report.description", 5));
+			reportColumnRepository.save(new ReportColumn("report.tags", 6));
+			reportColumnRepository.save(new ReportColumn("report.account", 7));
+			reportColumnRepository.save(new ReportColumn("report.rating", 8));
+			reportColumnRepository.save(new ReportColumn("report.amount", 9));
+
+			LOGGER.debug("Created default report columns");
+		}
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportSettingsService.java b/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportSettingsService.java
new file mode 100644
index 0000000000000000000000000000000000000000..4df313a15748d914feceb17caadec63531d60fd0
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportSettingsService.java
@@ -0,0 +1,52 @@
+package de.deadlocker8.budgetmaster.services.report;
+
+import de.deadlocker8.budgetmaster.entities.report.ReportColumn;
+import de.deadlocker8.budgetmaster.entities.report.ReportSettings;
+import de.deadlocker8.budgetmaster.repositories.report.ReportColumnRepository;
+import de.deadlocker8.budgetmaster.repositories.report.ReportSettingsRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ReportSettingsService
+{
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
+	private ReportSettingsRepository reportSettingsRepository;
+	private ReportColumnService reportColumnService;
+
+	@Autowired
+	public ReportSettingsService(ReportSettingsRepository reportSettingsRepository, ReportColumnService reportColumnService)
+	{
+		this.reportSettingsRepository = reportSettingsRepository;
+		this.reportColumnService = reportColumnService;
+		createDefaultReportSettingsIfNotExists();
+	}
+
+	public ReportSettingsRepository getRepository()
+	{
+		return reportSettingsRepository;
+	}
+
+	private void createDefaultReportSettingsIfNotExists()
+	{
+		if(reportSettingsRepository.findOne(0) == null)
+		{
+			ReportSettings reportSettings = ReportSettings.getDefault();
+			reportSettings.setID(0);
+			for(ReportColumn reportColumn : reportColumnService.getRepository().findAllByOrderByPositionAsc())
+			{
+				reportSettings.getColumns().add(reportColumn);
+			}
+
+			reportSettingsRepository.save(reportSettings);
+			LOGGER.debug("Created default report settings");
+		}
+	}
+
+	public ReportSettings getReportSettings()
+	{
+		return reportSettingsRepository.findOne(0);
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java b/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java
index 0cff68a91ef9530cb364dfd2f7a869876e51aff9..24d7c03ddff99e2f9923ad11e434da1316a8b28d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/validators/AccountValidator.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.validators;
 
-import de.deadlocker8.budgetmaster.entities.Category;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import org.springframework.validation.Errors;
 import org.springframework.validation.ValidationUtils;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/validators/CategoryValidator.java b/src/main/java/de/deadlocker8/budgetmaster/validators/CategoryValidator.java
index a7272ae9076db57feb9e8a3ff047a9111a6944ec..b32c6582ed28b1c19c6f8e5a0357a0b24e487b8f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/validators/CategoryValidator.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/validators/CategoryValidator.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.validators;
 
-import de.deadlocker8.budgetmaster.entities.Category;
+import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import org.springframework.validation.Errors;
 import org.springframework.validation.ValidationUtils;
diff --git a/src/main/resources/static/js/reports.js b/src/main/resources/static/js/reports.js
index e2d91c7f69bf95814e65cd768ecd2ae7ebb99230..45d83cf246e11f684ed4d1fa034df2f79d748aa5 100644
--- a/src/main/resources/static/js/reports.js
+++ b/src/main/resources/static/js/reports.js
@@ -29,7 +29,7 @@ function updateRow(item)
 function validateForm()
 {
     $('.columnName-checkbox').each(function (i, obj) {
-        var positionInput = document.getElementsByName("columns['" + obj.dataset.key + "'].position")[0];
+        var positionInput = document.getElementsByName("columns['" + obj.dataset.index + "'].position")[0];
         positionInput.value = i;
     });
 
diff --git a/src/main/resources/templates/reports/reports.ftl b/src/main/resources/templates/reports/reports.ftl
index 36a200d2e86b56422051e4267c7a651ba4de7a93..771028bc1fdf34e0e9478bc16c0e8f2c1ca7f70d 100644
--- a/src/main/resources/templates/reports/reports.ftl
+++ b/src/main/resources/templates/reports/reports.ftl
@@ -19,6 +19,7 @@
                 <div class="container">
                     <form name="NewReportSettings" action="<@s.url '/reports/generate'/>" method="post" onsubmit="return validateForm()">
                         <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
+                        <input type="hidden" name="ID" value="${reportSettings.getID()?c}"/>
                         <input type="hidden" name="date" value="${helpers.getLongDateString(currentDate)}"/>
 
                         <#-- settings -->
@@ -43,7 +44,7 @@
                                 </div>
                                 <div class="report-checkbox-container">
                                     <label>
-                                        <input type="checkbox" name="includeCategorybudgets" <#if reportSettings.includeCategoryBudgets>checked="checked"</#if>/>
+                                        <input type="checkbox" name="includeCategoryBudgets" <#if reportSettings.includeCategoryBudgets>checked="checked"</#if>/>
                                         <span class="columnName-label">${locale.getString('report.checkbox.inclue.categorybudgets')}</span>
                                     </label>
                                 </div>
@@ -66,13 +67,15 @@
                         <div class="row">
                             <div class="col s12 m8 offset-m2">
                                 <div id="columnNames">
-                                    <#list reportSettings.columns as key, value>
+                                    <#list reportSettings.getColumnsSorted() as column>
                                         <div class="columnName">
                                             <label>
-                                                <input type="checkbox" class="columnName-checkbox" data-key="${key}" name="columns['${key}'].activated"/>
-                                                <span class="columnName-label">${locale.getString(key)}</span>
+                                                <input type="checkbox" class="columnName-checkbox" data-index="${column?index}" name="columns['${column?index}'].activated" <#if column.isActivated()>checked="checked"</#if>/>
+                                                <span class="columnName-label">${locale.getString(column.getKey())}</span>
                                             </label>
-                                            <input type="hidden" name="columns['${key}'].position" value=""/>
+                                            <input type="hidden" name="columns['${column?index}'].ID" value="${column.getID()}"/>
+                                            <input type="hidden" name="columns['${column?index}'].key" value="${column.getKey()}"/>
+                                            <input type="hidden" name="columns['${column?index}'].position" value=""/>
                                         </div>
                                     </#list>
                                 </div>
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
index 9fabfb28ee172de0ec72520a30072769c45e36ba..ee8e6fa5f164d6052072b4ae5a0ebffa3e23f14c 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
@@ -1,6 +1,10 @@
 package de.deadlocker8.budgetmaster.database;
 
 import de.deadlocker8.budgetmaster.entities.*;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
 import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
index 5cf8460119fdec0b8c85ae1ba5ab681bdb9ebf6d..c1d8004eeb54aea3bbbb50ca68b70c58b7fde170 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
@@ -1,6 +1,10 @@
 package de.deadlocker8.budgetmaster.database;
 
 import de.deadlocker8.budgetmaster.entities.*;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndAfterXTimes;
 import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
index 019d7d66954cc6468804a96b24311175195709d4..7cbba4534164a222d105caeebf2ac7063f574aa4 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
@@ -2,6 +2,10 @@ package de.deadlocker8.budgetmaster.database;
 
 import de.deadlocker8.budgetmaster.database.legacy.LegacyParser;
 import de.deadlocker8.budgetmaster.entities.*;
+import de.deadlocker8.budgetmaster.entities.account.Account;
+import de.deadlocker8.budgetmaster.entities.account.AccountType;
+import de.deadlocker8.budgetmaster.entities.category.Category;
+import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndDate;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndNever;