diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java
index 5173796d37d63ecca782c73652fa1ed4bdea42b0..583ce5c1268dd647a5b77244dd0c608585111c7e 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java
@@ -159,7 +159,7 @@ public class AccountController extends BaseController
 		}
 		else
 		{
-			updateExistingAccount(account);
+			accountService.updateExistingAccount(account);
 		}
 
 		if(request.getSession().getAttribute("database") != null)
@@ -169,33 +169,4 @@ public class AccountController extends BaseController
 
 		return "redirect:/accounts";
 	}
-
-	private void updateExistingAccount(Account newAccount)
-	{
-		Optional<Account> existingAccountOptional = accountService.getRepository().findById(newAccount.getID());
-		if(existingAccountOptional.isPresent())
-		{
-			Account existingAccount = existingAccountOptional.get();
-			existingAccount.setName(newAccount.getName());
-			existingAccount.setIcon(newAccount.getIcon());
-			existingAccount.setType(AccountType.CUSTOM);
-			existingAccount.setAccountState(newAccount.getAccountState());
-			accountService.getRepository().save(existingAccount);
-
-			if(existingAccount.isDefault() && existingAccount.getAccountState() != AccountState.FULL_ACCESS)
-			{
-				// set any activated account as new default account
-				accountService.unsetDefaultForAllAccounts();
-				List<Account> activatedAccounts = accountService.getRepository().findAllByTypeAndAccountStateOrderByNameAsc(AccountType.CUSTOM, AccountState.FULL_ACCESS);
-				Account newDefaultAccount = activatedAccounts.get(0);
-				accountService.setAsDefaultAccount(newDefaultAccount.getID());
-			}
-
-			if(existingAccount.isSelected() && existingAccount.getAccountState() == AccountState.HIDDEN)
-			{
-				// select "all accounts" as selected account
-				accountService.selectAccount(accountService.getRepository().findAllByType(AccountType.ALL).get(0).getID());
-			}
-		}
-	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
index b1e17c04c7a50bdd5ddd1b8b9309c8be5788ee78..fa6b3e95f2b036f1bedd6fe4d7d22492e0b279f9 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
@@ -218,4 +218,35 @@ public class AccountService implements Resetable, AccessAllEntities<Account>
 			accountRepository.save(currentAccount);
 		}
 	}
+
+	public void updateExistingAccount(Account newAccount)
+	{
+		Optional<Account> existingAccountOptional = accountRepository.findById(newAccount.getID());
+		if(existingAccountOptional.isEmpty())
+		{
+			return;
+		}
+
+		Account existingAccount = existingAccountOptional.get();
+		existingAccount.setName(newAccount.getName());
+		existingAccount.setIcon(newAccount.getIcon());
+		existingAccount.setType(AccountType.CUSTOM);
+		existingAccount.setAccountState(newAccount.getAccountState());
+		accountRepository.save(existingAccount);
+
+		if(existingAccount.isDefault() && existingAccount.getAccountState() != AccountState.FULL_ACCESS)
+		{
+			// set any activated account as new default account
+			unsetDefaultForAllAccounts();
+			List<Account> activatedAccounts = accountRepository.findAllByTypeAndAccountStateOrderByNameAsc(AccountType.CUSTOM, AccountState.FULL_ACCESS);
+			Account newDefaultAccount = activatedAccounts.get(0);
+			setAsDefaultAccount(newDefaultAccount.getID());
+		}
+
+		if(existingAccount.isSelected() && existingAccount.getAccountState() == AccountState.HIDDEN)
+		{
+			// select "all accounts" as selected account
+			selectAccount(accountRepository.findAllByType(AccountType.ALL).get(0).getID());
+		}
+	}
 }