diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java
index 82d02cf1d8fd9d19170a526d955dba90b1f771d4..d85f32a9759dd3777a9b94ce1b7b6b535ca7ad79 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/FilterController.java
@@ -4,17 +4,14 @@ import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
 import de.deadlocker8.budgetmaster.services.CategoryService;
 import de.deadlocker8.budgetmaster.services.FilterHelpersService;
 import de.deadlocker8.budgetmaster.services.HelpersService;
-import de.deadlocker8.budgetmaster.services.TransactionService;
+import de.deadlocker8.budgetmaster.transactions.TransactionService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.context.request.WebRequest;
 
-import javax.servlet.http.HttpServletRequest;
-
 
 @Controller
 public class FilterController extends BaseController
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
index abfefd06e07ee729f4982446b08934e0527f6609..a0a0edcd3473461fa3906e49febbcaf192fcb962 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/ReportController.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.controller;
 
 import com.itextpdf.text.DocumentException;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.account.AccountType;
 import de.deadlocker8.budgetmaster.entities.report.ReportColumn;
@@ -15,6 +15,7 @@ import de.deadlocker8.budgetmaster.services.*;
 import de.deadlocker8.budgetmaster.services.report.ReportColumnService;
 import de.deadlocker8.budgetmaster.services.report.ReportGeneratorService;
 import de.deadlocker8.budgetmaster.services.report.ReportSettingsService;
+import de.deadlocker8.budgetmaster.transactions.TransactionService;
 import de.thecodelabs.utils.util.Localization;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/Database.java b/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
index d034bf4f559bb40ea1dacf576ff5f2af5f97a910..c56c526263a8de2179157f8d77ac0f36b0224890 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/Database.java
@@ -3,7 +3,7 @@ package de.deadlocker8.budgetmaster.database;
 import com.google.gson.annotations.Expose;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 
 import java.util.List;
 
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 eb967c16d4dcc55b754461687edab9efa2253a69..a61a4f717f26a220041f64fff668ee626b7cb57a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
@@ -4,7 +4,7 @@ import com.google.gson.*;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 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/legacy/LegacyParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
index a2271ac2ff248f18df4b109f95f4188e8895d123..3cd746c71218ec3131d96f8a63be1b62423ab8ff 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java
@@ -9,7 +9,7 @@ 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.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 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/account/Account.java b/src/main/java/de/deadlocker8/budgetmaster/entities/account/Account.java
index b8e4e7949da3d44aeb4a64727d888c10a32b4f25..0852602793a471af414591eadb684b0a92ae92c8 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/account/Account.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/account/Account.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.entities.account;
 
 import com.google.gson.annotations.Expose;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java b/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
index e7112e332293753011985ca0ad7e2058f7b8896c..2ad786b1bf056ea039956166f4f008c07b703163 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/category/Category.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.entities.category;
 
 import com.google.gson.annotations.Expose;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.thecodelabs.utils.util.ColorUtils;
 import javafx.scene.paint.Color;
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/tag/Tag.java b/src/main/java/de/deadlocker8/budgetmaster/entities/tag/Tag.java
index dcddf01215507a808d558a73144af7a246f5abdd..19a2da1f6429105be57cfb4e9b17668f7390b8e0 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/tag/Tag.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/tag/Tag.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.entities.tag;
 
 import com.google.gson.annotations.Expose;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/tag/TagScheduler.java b/src/main/java/de/deadlocker8/budgetmaster/entities/tag/TagScheduler.java
index 96b2c56f0ff3d474a4a29ad140d5e0c566f20944..87838298cf42207f9def2a5f76d715eacb3671af 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/tag/TagScheduler.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/entities/tag/TagScheduler.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.entities.tag;
 
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
-import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
+import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingOption.java b/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingOption.java
index ef8c48f33b6c596b751bc6bd87c3174b77ef1844..439139f8f2bec48b29b37ae1493d457291f6a3c0 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingOption.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingOption.java
@@ -1,7 +1,7 @@
 package de.deadlocker8.budgetmaster.repeating;
 
 import com.google.gson.annotations.Expose;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEnd;
 import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifier;
 import org.joda.time.DateTime;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingTransactionUpdater.java b/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingTransactionUpdater.java
index 1089080144691865c8476b629380fcfd0cad8373..4cf89932bd9a2b73db2323352fef2daa374185c7 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingTransactionUpdater.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/repeating/RepeatingTransactionUpdater.java
@@ -1,10 +1,10 @@
 package de.deadlocker8.budgetmaster.repeating;
 
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
-import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
+import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import de.deadlocker8.budgetmaster.repositories.RepeatingOptionRepository;
 import de.deadlocker8.budgetmaster.services.HelpersService;
-import de.deadlocker8.budgetmaster.services.TransactionService;
+import de.deadlocker8.budgetmaster.transactions.TransactionService;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfiguration.java b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfiguration.java
index e202aa5972db61f51b8b0e9edc877837032c9ebd..e36663215f56f294db3823ffa701f61baa933e58 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfiguration.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfiguration.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.reports;
 
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.entities.report.ReportSettings;
 import de.deadlocker8.budgetmaster.reports.categoryBudget.CategoryBudget;
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfigurationBuilder.java b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfigurationBuilder.java
index 1e8b262a51d08ac0ce13d1cb46571c80bd2c23ea..2a7618579187f932f811113c5469050e06bae7d2 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfigurationBuilder.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportConfigurationBuilder.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.reports;
 
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.entities.report.ReportSettings;
 import de.deadlocker8.budgetmaster.reports.categoryBudget.CategoryBudget;
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java b/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java
index 2e4df3a1086972b258c8c033e1d1d09344a69e43..14504115ca70042c596ff532fbe3965fcb713e32 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/categoryBudget/CategoryBudgetHandler.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.reports.categoryBudget;
 
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.entities.category.Category;
 
 import java.util.*;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
index 2a055697746db77067cc42886ce28208662bbca8..5c9fe20379f952825cd779f816e699e90ff28efb 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
@@ -5,7 +5,7 @@ import de.deadlocker8.budgetmaster.authentication.UserRepository;
 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.transactions.TransactionRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
 import org.slf4j.Logger;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
index 41b8aab94774e9d73b7854c67d4fd9adc5f80eaa..8aa9309590b649c11a19ed7e6799b0616412b4ef 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
@@ -2,7 +2,7 @@ package de.deadlocker8.budgetmaster.services;
 
 import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.entities.category.CategoryType;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
index b1391f565676e5309002bc574d474e116587b6a6..08a126aeb990dcf1369849c23fd07f9ffa4986e6 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
@@ -4,8 +4,9 @@ import com.google.gson.*;
 import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import de.deadlocker8.budgetmaster.entities.category.Category;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
+import de.deadlocker8.budgetmaster.transactions.TransactionService;
 import org.joda.time.DateTime;
 import org.joda.time.format.ISODateTimeFormat;
 import org.slf4j.Logger;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
index 75335615111fc9552706bda9709f9f4d37f4586e..d7833340fd704ab7ac3dcb79ec5d91adc66f2106 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
@@ -6,13 +6,14 @@ import de.deadlocker8.budgetmaster.entities.tag.Tag;
 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.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
 import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierType;
 import de.deadlocker8.budgetmaster.repositories.AccountRepository;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
+import de.deadlocker8.budgetmaster.transactions.TransactionService;
 import de.deadlocker8.budgetmaster.update.BudgetMasterUpdateService;
 import de.deadlocker8.budgetmaster.utils.Colors;
 import de.deadlocker8.budgetmaster.utils.LanguageType;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
index 50f91605d6797a0244ffa6b3903b2a51afc75564..6a132508285f507f4deb8105de92327ae774463f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
@@ -6,10 +6,10 @@ import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList;
 import de.deadlocker8.budgetmaster.entities.category.Category;
 import de.deadlocker8.budgetmaster.entities.category.CategoryType;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
-import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
+import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportGeneratorService.java b/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportGeneratorService.java
index 3015a0fe5e24fe6f1ec827de037766dc0c5c4660..dd663dc771f4dd35f6b3f41fd4711b673039f40f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportGeneratorService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/report/ReportGeneratorService.java
@@ -3,7 +3,7 @@ package de.deadlocker8.budgetmaster.services.report;
 import com.itextpdf.text.*;
 import com.itextpdf.text.pdf.*;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.entities.report.ReportColumn;
 import de.deadlocker8.budgetmaster.reports.*;
 import de.deadlocker8.budgetmaster.reports.categoryBudget.CategoryBudget;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/transaction/Transaction.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
similarity index 98%
rename from src/main/java/de/deadlocker8/budgetmaster/entities/transaction/Transaction.java
rename to src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
index 2b68a0a72a70743b9be4e1682a9482fddfa5dc22..2d2cfae86f6815992c5d707d7efd59271564172d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/transaction/Transaction.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmaster.entities.transaction;
+package de.deadlocker8.budgetmaster.transactions;
 
 import com.google.gson.annotations.Expose;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
similarity index 97%
rename from src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
rename to src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
index d295ec9010fa60535ee92d20890da40a381fc3f2..de9215669a3dce40960b28c21cf1ea825ffd3d58 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
@@ -1,8 +1,8 @@
-package de.deadlocker8.budgetmaster.controller;
+package de.deadlocker8.budgetmaster.transactions;
 
+import de.deadlocker8.budgetmaster.controller.BaseController;
 import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.RepeatingTransactionUpdater;
@@ -13,9 +13,7 @@ import de.deadlocker8.budgetmaster.repositories.*;
 import de.deadlocker8.budgetmaster.services.AccountService;
 import de.deadlocker8.budgetmaster.services.FilterHelpersService;
 import de.deadlocker8.budgetmaster.services.HelpersService;
-import de.deadlocker8.budgetmaster.services.TransactionService;
 import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException;
-import de.deadlocker8.budgetmaster.validators.TransactionValidator;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/TransactionRepository.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionRepository.java
similarity index 89%
rename from src/main/java/de/deadlocker8/budgetmaster/repositories/TransactionRepository.java
rename to src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionRepository.java
index 0c6691ba6f19889838b8db8bbfe6be05e670cbaa..c1ba078fef5421b182810d0cedcf3013244dfb17 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repositories/TransactionRepository.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionRepository.java
@@ -1,8 +1,8 @@
-package de.deadlocker8.budgetmaster.repositories;
+package de.deadlocker8.budgetmaster.transactions;
 
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.entities.account.Account;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import org.joda.time.DateTime;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
similarity index 95%
rename from src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
rename to src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
index b9d37a6a27b89e6cc95762e278d64a32011921c3..0bab635345ebeca72e9d9a121b33c9a3535305c1 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
@@ -1,14 +1,15 @@
-package de.deadlocker8.budgetmaster.services;
+package de.deadlocker8.budgetmaster.transactions;
 
 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.Transaction;
-import de.deadlocker8.budgetmaster.entities.transaction.TransactionSpecifications;
+import de.deadlocker8.budgetmaster.services.Resetable;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
+import de.deadlocker8.budgetmaster.transactions.TransactionSpecifications;
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.RepeatingOptionRepository;
-import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
+import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
 import org.joda.time.DateTime;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/entities/transaction/TransactionSpecifications.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java
similarity index 97%
rename from src/main/java/de/deadlocker8/budgetmaster/entities/transaction/TransactionSpecifications.java
rename to src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java
index 8787e58a89b3ece62c51191908d26eefb300f796..4ad46d0e76f9ae2749eacae288d7b3c6a792e333 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/transaction/TransactionSpecifications.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionSpecifications.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmaster.entities.transaction;
+package de.deadlocker8.budgetmaster.transactions;
 
 import de.deadlocker8.budgetmaster.entities.account.Account;
 import org.joda.time.DateTime;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/validators/TransactionValidator.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionValidator.java
similarity index 85%
rename from src/main/java/de/deadlocker8/budgetmaster/validators/TransactionValidator.java
rename to src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionValidator.java
index 76ebbf774e4e3fefa73bebe29603739a727cdff6..558cdce3a310e16b30922e1526adea3fb974cf6b 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/validators/TransactionValidator.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionValidator.java
@@ -1,6 +1,5 @@
-package de.deadlocker8.budgetmaster.validators;
+package de.deadlocker8.budgetmaster.transactions;
 
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
 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/entities/transaction/Transaction_.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction_.java
similarity index 95%
rename from src/main/java/de/deadlocker8/budgetmaster/entities/transaction/Transaction_.java
rename to src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction_.java
index 9a6c2d2f938f175143d662270d618ba226e5ddd7..eafe89583d00066faf0e93dd8dc0240e8739ef55 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/entities/transaction/Transaction_.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction_.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmaster.entities.transaction;
+package de.deadlocker8.budgetmaster.transactions;
 
 import de.deadlocker8.budgetmaster.entities.tag.Tag;
 import de.deadlocker8.budgetmaster.entities.account.Account;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java b/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java
index 83dd4c78e2a0b67fb0ea6dd1b788639b3dfc420f..c753811f83a8c771fc4edcfe873bb6199566d427 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/TransactionRepositoryTest.java
@@ -5,8 +5,9 @@ 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.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
-import de.deadlocker8.budgetmaster.entities.transaction.TransactionSpecifications;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
+import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
+import de.deadlocker8.budgetmaster.transactions.TransactionSpecifications;
 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/DatabaseImportTest.java b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
index 19317aec174d6995f45f93ef0f5bb82ec983aec7..45ca49d38707d86a8531b8ba0dd0cad8ac34ad9f 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseImportTest.java
@@ -5,10 +5,10 @@ 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.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
-import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
+import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import de.deadlocker8.budgetmaster.services.ImportService;
 import org.joda.time.DateTime;
 import org.junit.Test;
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 7a662d7e1512a6f2fd1afc414fab0a2215d15ba2..7addb5c90c3085f07637e770bf705f3274196f2e 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
@@ -5,7 +5,7 @@ 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.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 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 4fd0cd4277ca5f68a73dc52d83414d297f6d4a18..5ff56abc358fae0d8874a01262959f632bff3295 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
@@ -6,7 +6,7 @@ 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.entities.tag.Tag;
-import de.deadlocker8.budgetmaster.entities.transaction.Transaction;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndDate;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndNever;