diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/DestinationCategory.java b/src/main/java/de/deadlocker8/budgetmaster/categories/DestinationCategory.java
index 582fd0696d88176f983e71047218587ebccf95b5..08a4bd49123f35eb6b0e7a1375207ec57f267e11 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/categories/DestinationCategory.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/DestinationCategory.java
@@ -6,6 +6,7 @@ public class DestinationCategory
 
 	public DestinationCategory()
 	{
+		// empty
 	}
 
 	public Category getCategory()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java b/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java
index 86f9dd2b397f11eb8076b3ee999886ba969c660b..7b8e207185a0f3688f01cc0bc331af927f744b62 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/icon/IconService.java
@@ -77,6 +77,7 @@ public class IconService implements Resettable
 	@Override
 	public void createDefaults()
 	{
+		// no defaults needed
 	}
 
 	public Icon createIconReference(Integer iconImageID, String builtinIconIdentifier, String fontColor)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java b/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java
index 40dcec5d3f6f8e849dbaf5b8e9f571bdfb441c61..c336bb9660c9a6cb98f24ab9e19fee0932114e2c 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/images/ImageService.java
@@ -60,6 +60,7 @@ public class ImageService implements Resettable
 	@Override
 	public void createDefaults()
 	{
+		// no defaults needed
 	}
 
 	@Transactional
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java b/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java
index 5cd218c6996b6f36e2c190aa440dc34e1ba7c05a..ea8bf6ef8df4f7685ece15eade6c1524d7c67078 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java
@@ -16,6 +16,7 @@ public class HeaderFooterPageEvent extends PdfPageEventHelper
 	@Override
 	public void onStartPage(PdfWriter writer, Document document)
 	{
+		// empty
 	}
 
 	@Override
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportGeneratorService.java b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportGeneratorService.java
index 665fd68bdcbd2a15ea23702429ba4b3f90395473..a6aa558b9d8cc2b6e5e216bdc5f48d04cdb5849e 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/ReportGeneratorService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/ReportGeneratorService.java
@@ -75,68 +75,82 @@ public class ReportGeneratorService
 			Font font = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 8, Font.NORMAL, BLACK);
 			Font fontBold = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 8, Font.BOLD, BLACK);
 
-			// add table header
-			for(ReportColumn column : columns)
-			{
-				ColumnType columnType = ColumnType.getByName(column.getKey());
+			createTableHeader(columns, table, font);
 
-				PdfPCell cell = new PdfPCell(new Phrase(columnType.getName(), font));
-				cell.setBackgroundColor(LIGHT_GRAY);
-				cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-				cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-				table.addCell(cell);
-			}
+			createTableContent(reportConfiguration, amountType, columns, table, font);
 
-			int index = 0;
-			for(Transaction currentItem : reportConfiguration.getTransactions())
-			{
-				if(amountType.equals(AmountType.INCOME) && currentItem.getAmount() <= 0)
-				{
-					continue;
-				}
+			createTotal(reportConfiguration, amountType, numberOfColumns, table, fontBold);
 
-				if(amountType.equals(AmountType.EXPENDITURE) && currentItem.getAmount() > 0)
-				{
-					continue;
-				}
+			return table;
+		}
+		return null;
+	}
 
-				index++;
+	private void createTotal(ReportConfiguration reportConfiguration, AmountType amountType, int numberOfColumns, PdfPTable table, Font fontBold)
+	{
+		PdfPCell cellTotal;
+		String total = "";
+		String totalIncomeString = currencyService.getCurrencyString(reportConfiguration.getBudget().getIncomeSum());
+		String totalExpenditureString = currencyService.getCurrencyString(reportConfiguration.getBudget().getExpenditureSum());
+		switch(amountType)
+		{
+			case BOTH:
+				total = Localization.getString(Strings.REPORT_SUM_TOTAL, totalIncomeString, totalExpenditureString);
+				break;
+			case INCOME:
+				total = Localization.getString(Strings.REPORT_SUM, totalIncomeString);
+				break;
+			case EXPENDITURE:
+				total = Localization.getString(Strings.REPORT_SUM, totalExpenditureString);
+				break;
+		}
 
-				for(ReportColumn column : columns)
-				{
-					ColumnType columnType = ColumnType.getByName(column.getKey());
-					PdfPCell cell = getTransactionTableCell(currentItem, columnType, index, font);
-					table.addCell(cell);
-				}
+		cellTotal = new PdfPCell(new Phrase(total, fontBold));
+		cellTotal.setBackgroundColor(getBaseColor(Color.WHITE));
+		cellTotal.setColspan(numberOfColumns);
+		cellTotal.setHorizontalAlignment(Element.ALIGN_RIGHT);
+		cellTotal.setVerticalAlignment(Element.ALIGN_MIDDLE);
+		table.addCell(cellTotal);
+	}
+
+	private void createTableContent(ReportConfiguration reportConfiguration, AmountType amountType, List<ReportColumn> columns, PdfPTable table, Font font)
+	{
+		int index = 0;
+		for(Transaction currentItem : reportConfiguration.getTransactions())
+		{
+			if(amountType.equals(AmountType.INCOME) && currentItem.getAmount() <= 0)
+			{
+				continue;
 			}
 
-			PdfPCell cellTotal;
-			String total = "";
-			String totalIncomeString = currencyService.getCurrencyString(reportConfiguration.getBudget().getIncomeSum());
-			String totalExpenditureString = currencyService.getCurrencyString(reportConfiguration.getBudget().getExpenditureSum());
-			switch(amountType)
+			if(amountType.equals(AmountType.EXPENDITURE) && currentItem.getAmount() > 0)
 			{
-				case BOTH:
-					total = Localization.getString(Strings.REPORT_SUM_TOTAL, totalIncomeString, totalExpenditureString);
-					break;
-				case INCOME:
-					total = Localization.getString(Strings.REPORT_SUM, totalIncomeString);
-					break;
-				case EXPENDITURE:
-					total = Localization.getString(Strings.REPORT_SUM, totalExpenditureString);
-					break;
+				continue;
 			}
 
-			cellTotal = new PdfPCell(new Phrase(total, fontBold));
-			cellTotal.setBackgroundColor(getBaseColor(Color.WHITE));
-			cellTotal.setColspan(numberOfColumns);
-			cellTotal.setHorizontalAlignment(Element.ALIGN_RIGHT);
-			cellTotal.setVerticalAlignment(Element.ALIGN_MIDDLE);
-			table.addCell(cellTotal);
+			index++;
 
-			return table;
+			for(ReportColumn column : columns)
+			{
+				ColumnType columnType = ColumnType.getByName(column.getKey());
+				PdfPCell cell = getTransactionTableCell(currentItem, columnType, index, font);
+				table.addCell(cell);
+			}
+		}
+	}
+
+	private void createTableHeader(List<ReportColumn> columns, PdfPTable table, Font font)
+	{
+		for(ReportColumn column : columns)
+		{
+			ColumnType columnType = ColumnType.getByName(column.getKey());
+
+			PdfPCell cell = new PdfPCell(new Phrase(columnType.getName(), font));
+			cell.setBackgroundColor(LIGHT_GRAY);
+			cell.setHorizontalAlignment(Element.ALIGN_CENTER);
+			cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+			table.addCell(cell);
 		}
-		return null;
 	}
 
 	private PdfPCell getTransactionTableCell(Transaction transaction, ColumnType columnType, int position, Font font)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
index 55f09482df3de2271da38528fd2a5f67935ce441..28f7c8a19d87b71a07b398d73b3e85293a1bbb39 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
@@ -45,6 +45,7 @@ public class Settings
 
 	public Settings()
 	{
+		// empty
 	}
 
 	public static Settings getDefault()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java b/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
index 6a1b692f195ede22a4b51e450571e53cb866ae2f..054d4f5bc6089adebd21c4eb80a905c0c16c5d0d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
@@ -35,6 +35,7 @@ public class TagService implements Resettable, AccessAllEntities<Tag>
 	@Override
 	public void createDefaults()
 	{
+		// no defaults needed
 	}
 
 	@Override
diff --git a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateModelAttributes.java b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateModelAttributes.java
index afd8ee37a917e10d0daf6cd303eafcbe01597e47..8afe9ea758f46c458b06db9cf437a807ddb8f172 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateModelAttributes.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/templates/TemplateModelAttributes.java
@@ -2,6 +2,10 @@ package de.deadlocker8.budgetmaster.templates;
 
 public class TemplateModelAttributes
 {
+	private TemplateModelAttributes()
+	{
+	}
+
 	public static final String ERROR = "error";
 	public static final String TEMPLATES_BY_GROUP = "templatesByGroup";
 	public static final String EXISTING_TEMPLATE_NAMES = "existingTemplateNames";
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionModelAttributes.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionModelAttributes.java
index c2229bae28aca1dd4d534762550b8c3d7f92082c..fbe58af003f81d71ba7f3b42dbfe573b8ab4cda8 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionModelAttributes.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionModelAttributes.java
@@ -2,6 +2,10 @@ package de.deadlocker8.budgetmaster.transactions;
 
 public class TransactionModelAttributes
 {
+	private TransactionModelAttributes()
+	{
+	}
+
 	public static final String ERROR = "error";
 	public static final String ALL_ENTITIES = "transactions";
 	public static final String ONE_ENTITY = "transaction";
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
index 3138f65b286b46261db8ae41743f8b6a22bb021d..0870489e255792538a40363c5e534e825c76250b 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
@@ -232,6 +232,7 @@ public class TransactionService implements Resettable
 	@Override
 	public void createDefaults()
 	{
+		// no defaults needed
 	}
 
 	public void handleAmount(TransactionBase item)