diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
index 86c903e1ec52b13d0acba3150c227ee0b1ec642f..233360c997d0aa7affa56dc732505b08c15dfb89 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
@@ -112,12 +112,14 @@ public class AccountService implements Resettable, AccessAllEntities<Account>, A
 	@Override
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting accounts...");
 		deselectAllAccounts();
 		User user = userRepository.findByName("Default");
 		user.setSelectedAccount(null);
 		userRepository.save(user);
 
 		accountRepository.deleteAll();
+		LOGGER.info("All accounts reset.");
 	}
 
 	@Override
diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java
index 9086780d06fc43b35064ca29c2f0bc99fb76bbe2..0d010094f690fc4c8fae01f51e6a56f719562cef 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/CategoryService.java
@@ -82,7 +82,9 @@ public class CategoryService implements Resettable, AccessAllEntities<Category>,
 	@Override
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting categories...");
 		categoryRepository.deleteAll();
+		LOGGER.info("All categories reset.");
 	}
 
 	@Override
diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java
index b0beea706b7821743a021b73e84de212bec62ab4..c0c1bc979dad2d897ffbb36eb4ddb6942f112901 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartService.java
@@ -39,7 +39,9 @@ public class ChartService implements Resettable, AccessAllEntities<Chart>
 	@Override
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting charts...");
 		chartRepository.deleteAll();
+		LOGGER.info("All charts reset.");
 	}
 
 	@SuppressWarnings("OptionalIsPresent")
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
index f9a6a9d0f9146ad611a81951c80c9f9186887394..ae563e67a67e3d2fc8b9e5f42f15f19cd21fb340 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
@@ -16,6 +16,7 @@ import de.deadlocker8.budgetmaster.icon.IconService;
 import de.deadlocker8.budgetmaster.images.Image;
 import de.deadlocker8.budgetmaster.images.ImageService;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
+import de.deadlocker8.budgetmaster.services.Resettable;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
 import de.deadlocker8.budgetmaster.tags.TagService;
 import de.deadlocker8.budgetmaster.templategroup.TemplateGroup;
@@ -80,78 +81,18 @@ public class DatabaseService
 
 	public void reset()
 	{
-		resetTransactions();
-		resetTemplates();
-		resetCategories();
-		resetAccounts();
-		resetTags();
-		resetCharts();
-		resetIcons();
-		resetImages();
-	}
-
-	private void resetAccounts()
-	{
-		LOGGER.info("Resetting accounts...");
-		accountService.deleteAll();
-		accountService.createDefaults();
-		LOGGER.info("All accounts reset.");
-	}
-
-	private void resetCategories()
-	{
-		LOGGER.info("Resetting categories...");
-		categoryService.deleteAll();
-		categoryService.createDefaults();
-		LOGGER.info("All categories reset.");
-	}
-
-	private void resetTransactions()
-	{
-		LOGGER.info("Resetting transactions...");
-		transactionService.deleteAll();
-		transactionService.createDefaults();
-		LOGGER.info("All transactions reset.");
-	}
-
-	private void resetTags()
-	{
-		LOGGER.info("Resetting tags...");
-		tagService.deleteAll();
-		tagService.createDefaults();
-		LOGGER.info("All tags reset.");
-	}
+		final List<Resettable> services = List.of(this.transactionService, templateService, categoryService, accountService, tagService, chartService, iconService, imageService);
 
-	private void resetTemplates()
-	{
-		LOGGER.info("Resetting templates...");
-		templateService.deleteAll();
-		templateService.createDefaults();
-		LOGGER.info("All templates reset.");
-	}
-
-	private void resetCharts()
-	{
-		LOGGER.info("Resetting charts...");
-		chartService.deleteAll();
-		chartService.createDefaults();
-		LOGGER.info("All charts reset.");
-	}
-
-	private void resetImages()
-	{
-		LOGGER.info("Resetting images...");
-		imageService.deleteAll();
-		imageService.createDefaults();
-		LOGGER.info("All images reset.");
-	}
+		for(Resettable service : services)
+		{
+			service.deleteAll();
+		}
 
-	private void resetIcons()
-	{
-		LOGGER.info("Resetting icons...");
-		iconService.deleteAll();
-		iconService.createDefaults();
-		LOGGER.info("All icons reset.");
+		// create defaults after deletion to avoid deletion of newly created defaults
+		for(Resettable service : services)
+		{
+			service.createDefaults();
+		}
 	}
 
 	public void rotatingBackup(Path backupFolderPath)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java b/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java
index 7b8e207185a0f3688f01cc0bc331af927f744b62..e28ec2ed73688c23d285d13a34b3f41a8c6a5e5a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java
@@ -7,6 +7,8 @@ import de.deadlocker8.budgetmaster.images.ImageRepository;
 import de.deadlocker8.budgetmaster.services.Resettable;
 import de.deadlocker8.budgetmaster.templates.Template;
 import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -17,6 +19,8 @@ import java.util.Optional;
 @Service
 public class IconService implements Resettable
 {
+	private static final Logger LOGGER = LoggerFactory.getLogger(IconService.class);
+
 	private final IconRepository iconRepository;
 	private final ImageRepository imageRepository;
 
@@ -36,6 +40,8 @@ public class IconService implements Resettable
 	@Transactional
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting icons...");
+
 		final List<Icon> icons = iconRepository.findAll();
 		for(Icon icon : icons)
 		{
@@ -43,6 +49,7 @@ public class IconService implements Resettable
 		}
 
 		iconRepository.deleteAll();
+		LOGGER.info("All icons reset.");
 	}
 
 	@Transactional
diff --git a/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java b/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java
index c336bb9660c9a6cb98f24ab9e19fee0932114e2c..9d52c357bb49c08066fdbc19fd1535d2a849b1f6 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java
@@ -5,6 +5,8 @@ import de.deadlocker8.budgetmaster.icon.IconService;
 import de.deadlocker8.budgetmaster.services.Resettable;
 import de.thecodelabs.utils.util.Localization;
 import org.apache.commons.lang3.ArrayUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -17,6 +19,9 @@ import java.util.Optional;
 @Service
 public class ImageService implements Resettable
 {
+	private static final Logger LOGGER = LoggerFactory.getLogger(ImageService.class);
+
+
 	private final ImageRepository imageRepository;
 	private final IconService iconService;
 
@@ -36,6 +41,7 @@ public class ImageService implements Resettable
 	@Transactional
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting images...");
 		final List<Image> images = imageRepository.findAll();
 		for(Image image : images)
 		{
@@ -43,6 +49,7 @@ public class ImageService implements Resettable
 		}
 
 		imageRepository.deleteAll();
+		LOGGER.info("All images reset.");
 	}
 
 	@Transactional
diff --git a/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java b/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
index 054d4f5bc6089adebd21c4eb80a905c0c16c5d0d..87f43c724e30721ecb361d60e50902ba444267be 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
@@ -3,6 +3,8 @@ package de.deadlocker8.budgetmaster.tags;
 import de.deadlocker8.budgetmaster.services.AccessAllEntities;
 import de.deadlocker8.budgetmaster.services.Resettable;
 import org.padler.natorder.NaturalOrderComparator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -13,6 +15,8 @@ import java.util.Map;
 @Service
 public class TagService implements Resettable, AccessAllEntities<Tag>
 {
+	private static final Logger LOGGER = LoggerFactory.getLogger(TagService.class);
+
 	private final TagRepository tagRepository;
 
 	@Autowired
@@ -29,7 +33,9 @@ public class TagService implements Resettable, AccessAllEntities<Tag>
 	@Override
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting tags...");
 		tagRepository.deleteAll();
+		LOGGER.info("All tags reset.");
 	}
 
 	@Override
diff --git a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java
index 3e9a4a7a421f8b80bf205056a4bbad9bd5225f38..c6fa79bb6292a64e35cf053371e09eaf8a8b7b0b 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateService.java
@@ -60,7 +60,9 @@ public class TemplateService implements Resettable, AccessAllEntities<Template>,
 	@Override
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting templates...");
 		templateRepository.deleteAll();
+		LOGGER.info("All templates reset.");
 	}
 
 	@Override
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
index 6e8d3e92216714d4979603f730498827ebf3a3c7..2b26fd35a39be8cbe271b2496a9b52bd6d2565f4 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
@@ -203,10 +203,12 @@ public class TransactionService implements Resettable
 	@Override
 	public void deleteAll()
 	{
+		LOGGER.info("Resetting transactions...");
 		for(Transaction transaction : transactionRepository.findAll())
 		{
 			deleteTransactionInRepo(transaction.getID());
 		}
+		LOGGER.info("All transactions reset.");
 	}
 
 	public void deleteTransactionsWithAccount(Account account)