diff --git a/BudgetMasterDatabaseMigrator/pom.xml b/BudgetMasterDatabaseMigrator/pom.xml
deleted file mode 100644
index b5eed7be00c509a7b23c49566e6046548ea73b1f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>BudgetMaster</artifactId>
-        <groupId>de.deadlocker8</groupId>
-        <version>2.12.0</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>BudgetMasterDatabaseMigrator</artifactId>
-
-    <properties>
-        <h2database.version>1.4.199</h2database.version>
-        <commons-cli.version>1.5.0</commons-cli.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-batch</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.batch</groupId>
-            <artifactId>spring-batch-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <version>${h2database.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mariadb.jdbc</groupId>
-            <artifactId>mariadb-java-client</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-cli</groupId>
-            <artifactId>commons-cli</artifactId>
-            <version>${commons-cli.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <configuration>
-                    <outputDirectory>${basedir}/../BudgetMasterServer/src/main/resources</outputDirectory>
-                    <finalName>${project.artifactId}</finalName>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/BatchConfiguration.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/BatchConfiguration.java
deleted file mode 100644
index bb094071476de3ab8a371c92053c4c8dbbad5f2c..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/BatchConfiguration.java
+++ /dev/null
@@ -1,584 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.account.DestinationAccount;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.account.DestinationAccountIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategory;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategoryIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.chart.DestinationChart;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.chart.DestinationChartIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.hint.DestinationHint;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.hint.DestinationHintIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.icon.DestinationIcon;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.icon.DestinationIconIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.image.DestinationImage;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.image.DestinationImageIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.DestinationRepeatingOption;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.DestinationRepeatingOptionIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.*;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.*;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportColumn;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportColumnIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportSettings;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportSettingsIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.settings.DestinationSettings;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.settings.DestinationSettingsIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.tag.*;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.template.DestinationTemplate;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.template.DestinationTemplateIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup.DestinationTemplateGroup;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup.DestinationTemplateGroupIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.transaction.DestinationTransaction;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.transaction.DestinationTransactionIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.user.DestinationUser;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.user.DestinationUserIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.listener.GenericChunkListener;
-import de.deadlocker8.budgetmaster.databasemigrator.listener.GenericJobListener;
-import de.deadlocker8.budgetmaster.databasemigrator.listener.GenericStepListener;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.GenericDoNothingProcessor;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.GenericWriter;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.*;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.RepeatingOptionReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end.RepeatingEndAfterXTimesReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end.RepeatingEndDateReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end.RepeatingEndNeverReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end.RepeatingEndReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier.RepeatingModifierDaysReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier.RepeatingModifierMonthsReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier.RepeatingModifierReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier.RepeatingModifierYearsReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.report.ReportColumnReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.report.ReportSettingsReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.tag.TagReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.tag.TemplateTagReader;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.tag.TransactionTagReader;
-import lombok.AllArgsConstructor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.batch.core.Job;
-import org.springframework.batch.core.Step;
-import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
-import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
-import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
-import org.springframework.batch.core.launch.support.RunIdIncrementer;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.jdbc.core.JdbcTemplate;
-
-import javax.persistence.EntityManager;
-import javax.sql.DataSource;
-
-@Configuration
-@EnableBatchProcessing
-@AllArgsConstructor
-public class BatchConfiguration
-{
-	private static final Logger LOGGER = LoggerFactory.getLogger(BatchConfiguration.class);
-
-	final JobBuilderFactory jobBuilderFactory;
-	final StepBuilderFactory stepBuilderFactory;
-
-	final EntityManager entityManager;
-
-	final DataSource primaryDataSource;
-
-	final DestinationImageIntegerRepository destinationImageRepository;
-	final DestinationIconIntegerRepository destinationIconRepository;
-	final DestinationCategoryIntegerRepository destinationCategoryRepository;
-	final DestinationAccountIntegerRepository destinationAccountRepository;
-	final DestinationChartIntegerRepository destinationChartRepository;
-	final DestinationHintIntegerRepository destinationHintRepository;
-
-	final DestinationRepeatingEndIntegerRepository destinationRepeatingEndRepository;
-	final DestinationRepeatingEndAfterXTimesIntegerRepository destinationRepeatingEndAfterXTimesRepository;
-	final DestinationRepeatingEndDateIntegerRepository destinationRepeatingEndDateRepository;
-	final DestinationRepeatingEndNeverIntegerRepository destinationRepeatingEndNeverRepository;
-
-	final DestinationRepeatingModifierIntegerRepository destinationRepeatingModifierRepository;
-	final DestinationRepeatingModifierDaysIntegerRepository destinationRepeatingModifierDaysRepository;
-	final DestinationRepeatingModifierMonthsIntegerRepository destinationRepeatingModifierMonthsRepository;
-	final DestinationRepeatingModifierYearsIntegerRepository destinationRepeatingModifierYearsRepository;
-
-	final DestinationRepeatingOptionIntegerRepository destinationRepeatingOptionRepository;
-
-	final DestinationReportColumnIntegerRepository destinationReportColumnRepository;
-	final DestinationReportSettingsIntegerRepository destinationReportSettingsRepository;
-
-	final DestinationSettingsIntegerRepository destinationSettingsRepository;
-
-	final DestinationTagIntegerRepository destinationTagRepository;
-	final DestinationTemplateTagIntegerRepository destinationTemplateTagRepository;
-	final DestinationTransactionTagIntegerRepository destinationTransactionTagRepository;
-
-	final DestinationUserIntegerRepository destinationUserRepository;
-	final DestinationTransactionIntegerRepository destinationTransactionRepository;
-
-	final DestinationTemplateIntegerRepository destinationTemplateRepository;
-	final DestinationTemplateGroupIntegerRepository destinationTemplateGroupRepository;
-
-	final ApplicationContext context;
-
-	public void cleanDatabase()
-	{
-		LOGGER.debug(">>> Cleanup database...");
-
-		// deletion order is important!
-
-		LOGGER.debug("Cleaning tags...");
-		destinationTemplateTagRepository.deleteAll();
-		destinationTransactionTagRepository.deleteAll();
-		destinationTagRepository.deleteAll();
-
-		LOGGER.debug("Cleaning transactions...");
-		destinationTransactionRepository.deleteAll();
-
-		LOGGER.debug("Cleaning templates...");
-		destinationTemplateRepository.deleteAll();
-		LOGGER.debug("Cleaning template groups.");
-		destinationTemplateGroupRepository.deleteAll();
-
-		LOGGER.debug("Cleaning categories...");
-		destinationCategoryRepository.deleteAll();
-		LOGGER.debug("Cleaning users...");
-		destinationUserRepository.deleteAll();
-		LOGGER.debug("Cleaning accounts...");
-		destinationAccountRepository.deleteAll();
-
-		LOGGER.debug("Cleaning report settings...");
-		destinationReportColumnRepository.deleteAll();
-		destinationReportSettingsRepository.deleteAll();
-
-		LOGGER.debug("Cleaning charts...");
-		destinationChartRepository.deleteAll();
-		LOGGER.debug("Cleaning hints...");
-		destinationHintRepository.deleteAll();
-
-		LOGGER.debug("Cleaning icons...");
-		destinationIconRepository.deleteAll();
-		LOGGER.debug("Cleaning images...");
-		destinationImageRepository.deleteAll();
-
-		LOGGER.debug("Cleaning repeating options...");
-		destinationRepeatingOptionRepository.deleteAll();
-		destinationRepeatingEndAfterXTimesRepository.deleteAll();
-		destinationRepeatingEndDateRepository.deleteAll();
-		destinationRepeatingEndNeverRepository.deleteAll();
-		destinationRepeatingEndRepository.deleteAll();
-		destinationRepeatingModifierDaysRepository.deleteAll();
-		destinationRepeatingModifierMonthsRepository.deleteAll();
-		destinationRepeatingModifierYearsRepository.deleteAll();
-		destinationRepeatingModifierRepository.deleteAll();
-
-		LOGGER.debug("Cleaning settings...");
-		destinationSettingsRepository.deleteAll();
-
-		LOGGER.debug(">>> Cleanup database DONE");
-	}
-
-	@Bean(name = "jdbcTemplate2")
-	public JdbcTemplate createJdbcTemplate2(@Autowired @Qualifier("secondaryDataSource") DataSource dataSource2)
-	{
-		return new JdbcTemplate(dataSource2);
-	}
-
-	@Bean(name = "migrateJob")
-	public Job createMigrateJob()
-	{
-		return jobBuilderFactory.get("Migrate from h2 to postgresql")
-				.incrementer(new RunIdIncrementer())
-				.start(createStepForImageMigration())
-				.next(createStepForIconMigration())
-
-				.next(createStepForCategoryMigration())
-				.next(createStepForAccountMigration())
-
-				.next(createStepForChartMigration())
-				.next(createStepForHintMigration())
-
-				// repeating end options
-				.next(createStepForRepeatingEndMigration())
-				.next(createStepForRepeatingEndAfterXTimesMigration())
-				.next(createStepForRepeatingEndDateMigration())
-				.next(createStepForRepeatingEndNeverMigration())
-
-				// repeating modifiers
-				.next(createStepForRepeatingModifierMigration())
-				.next(createStepForRepeatingModifierDaysMigration())
-				.next(createStepForRepeatingModifierMonthsMigration())
-				.next(createStepForRepeatingModifierYearsMigration())
-
-				.next(createStepForRepeatingOptionMigration())
-
-				.next(createStepForReportSettingsMigration())
-				.next(createStepForReportColumnMigration())
-
-				.next(createStepForSettingsMigration())
-				.next(createStepForUserMigration())
-
-				.next(createStepForTransactionMigration())
-
-				.next(createStepForTemplateGroupMigration())
-				.next(createStepForTemplateMigration())
-
-				.next(createStepForTagMigration())
-				.next(createStepForTemplateTagMigration())
-				.next(createStepForTransactionTagMigration())
-
-				.listener(new GenericJobListener())
-				.build();
-	}
-
-	@Bean
-	public Step createStepForImageMigration()
-	{
-		return stepBuilderFactory.get(StepNames.IMAGES)
-				.<DestinationImage, DestinationImage>chunk(1)
-				.reader(new ImageReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationImageRepository))
-				.listener(new GenericChunkListener(TableNames.IMAGE))
-				.listener(new GenericStepListener<>(TableNames.IMAGE, destinationImageRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForIconMigration()
-	{
-		return stepBuilderFactory.get(StepNames.ICONS)
-				.<DestinationIcon, DestinationIcon>chunk(1)
-				.reader(new IconReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationIconRepository))
-				.listener(new GenericChunkListener(TableNames.ICON))
-				.listener(new GenericStepListener<>(TableNames.ICON, destinationIconRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForCategoryMigration()
-	{
-		return stepBuilderFactory.get(StepNames.CATEGORIES)
-				.<DestinationCategory, DestinationCategory>chunk(1)
-				.reader(new CategoryReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationCategoryRepository))
-				.listener(new GenericChunkListener(TableNames.CATEGORY))
-				.listener(new GenericStepListener<>(TableNames.CATEGORY, destinationCategoryRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForAccountMigration()
-	{
-		return stepBuilderFactory.get(StepNames.ACCOUNTS)
-				.<DestinationAccount, DestinationAccount>chunk(1)
-				.reader(new AccountReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationAccountRepository))
-				.listener(new GenericChunkListener(TableNames.ACCOUNT))
-				.listener(new GenericStepListener<>(TableNames.ACCOUNT, destinationAccountRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForChartMigration()
-	{
-		return stepBuilderFactory.get(StepNames.CHARTS)
-				.<DestinationChart, DestinationChart>chunk(1)
-				.reader(new ChartReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationChartRepository))
-				.listener(new GenericChunkListener(TableNames.CHART))
-				.listener(new GenericStepListener<>(TableNames.CHART, destinationChartRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForHintMigration()
-	{
-		return stepBuilderFactory.get(StepNames.HINTS)
-				.<DestinationHint, DestinationHint>chunk(1)
-				.reader(new HintReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationHintRepository))
-				.listener(new GenericChunkListener(TableNames.HINT))
-				.listener(new GenericStepListener<>(TableNames.HINT, destinationHintRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingEndMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_ENDS)
-				.<DestinationRepeatingEnd, DestinationRepeatingEnd>chunk(1)
-				.reader(new RepeatingEndReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingEndRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_END))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_END, destinationRepeatingEndRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingEndAfterXTimesMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_END_AFTER_X_TIMES)
-				.<DestinationRepeatingEndAfterXTimes, DestinationRepeatingEndAfterXTimes>chunk(1)
-				.reader(new RepeatingEndAfterXTimesReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingEndAfterXTimesRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_END_AFTER_X_TIMES))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_END_AFTER_X_TIMES, destinationRepeatingEndAfterXTimesRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingEndDateMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_END_DATE)
-				.<DestinationRepeatingEndDate, DestinationRepeatingEndDate>chunk(1)
-				.reader(new RepeatingEndDateReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingEndDateRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_END_DATE))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_END_DATE, destinationRepeatingEndDateRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingEndNeverMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_END_NEVER)
-				.<DestinationRepeatingEndNever, DestinationRepeatingEndNever>chunk(1)
-				.reader(new RepeatingEndNeverReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingEndNeverRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_END_NEVER))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_END_NEVER, destinationRepeatingEndNeverRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingModifierMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_MODIFIERS)
-				.<DestinationRepeatingModifier, DestinationRepeatingModifier>chunk(1)
-				.reader(new RepeatingModifierReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingModifierRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_MODIFIER, destinationRepeatingModifierRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingModifierDaysMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_MODIFIER_DAYS)
-				.<DestinationRepeatingModifierDays, DestinationRepeatingModifierDays>chunk(1)
-				.reader(new RepeatingModifierDaysReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingModifierDaysRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER_DAYS))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_MODIFIER_DAYS, destinationRepeatingModifierDaysRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingModifierMonthsMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_MODIFIER_MONTHS)
-				.<DestinationRepeatingModifierMonths, DestinationRepeatingModifierMonths>chunk(1)
-				.reader(new RepeatingModifierMonthsReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingModifierMonthsRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER_MONTHS))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_MODIFIER_MONTHS, destinationRepeatingModifierMonthsRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingModifierYearsMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_MODIFIER_YEARS)
-				.<DestinationRepeatingModifierYears, DestinationRepeatingModifierYears>chunk(1)
-				.reader(new RepeatingModifierYearsReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingModifierYearsRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER_YEARS))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_MODIFIER_YEARS, destinationRepeatingModifierYearsRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForRepeatingOptionMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPEATING_OPTIONS)
-				.<DestinationRepeatingOption, DestinationRepeatingOption>chunk(1)
-				.reader(new RepeatingOptionReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationRepeatingOptionRepository))
-				.listener(new GenericChunkListener(TableNames.REPEATING_OPTION))
-				.listener(new GenericStepListener<>(TableNames.REPEATING_OPTION, destinationRepeatingOptionRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForReportColumnMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPORT_COLUMNS)
-				.<DestinationReportColumn, DestinationReportColumn>chunk(1)
-				.reader(new ReportColumnReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationReportColumnRepository))
-				.listener(new GenericChunkListener(TableNames.REPORT_COLUMN))
-				.listener(new GenericStepListener<>(TableNames.REPORT_COLUMN, destinationReportColumnRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForReportSettingsMigration()
-	{
-		return stepBuilderFactory.get(StepNames.REPORT_SETTINGS)
-				.<DestinationReportSettings, DestinationReportSettings>chunk(1)
-				.reader(new ReportSettingsReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationReportSettingsRepository))
-				.listener(new GenericChunkListener(TableNames.REPORT_SETTINGS))
-				.listener(new GenericStepListener<>(TableNames.REPORT_SETTINGS, destinationReportSettingsRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForSettingsMigration()
-	{
-		return stepBuilderFactory.get(StepNames.SETTINGS)
-				.<DestinationSettings, DestinationSettings>chunk(1)
-				.reader(new SettingsReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationSettingsRepository))
-				.listener(new GenericChunkListener(TableNames.SETTINGS))
-				.listener(new GenericStepListener<>(TableNames.SETTINGS, destinationSettingsRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForTagMigration()
-	{
-		return stepBuilderFactory.get(StepNames.TAGS)
-				.<DestinationTag, DestinationTag>chunk(1)
-				.reader(new TagReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationTagRepository))
-				.listener(new GenericChunkListener(TableNames.TAG))
-				.listener(new GenericStepListener<>(TableNames.TAG, destinationTagRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForTemplateTagMigration()
-	{
-		return stepBuilderFactory.get(StepNames.TEMPLATE_TAGS)
-				.<DestinationTemplateTag, DestinationTemplateTag>chunk(1)
-				.reader(new TemplateTagReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationTemplateTagRepository))
-				.listener(new GenericChunkListener(TableNames.TEMPLATE_TAGS))
-				.listener(new GenericStepListener<>(TableNames.TEMPLATE_TAGS, destinationTemplateTagRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForTransactionTagMigration()
-	{
-		return stepBuilderFactory.get(StepNames.TRANSACTION_TAGS)
-				.<DestinationTransactionTag, DestinationTransactionTag>chunk(1)
-				.reader(new TransactionTagReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationTransactionTagRepository))
-				.listener(new GenericChunkListener(TableNames.TRANSACTION_TAGS))
-				.listener(new GenericStepListener<>(TableNames.TRANSACTION_TAGS, destinationTransactionTagRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), false))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForUserMigration()
-	{
-		return stepBuilderFactory.get(StepNames.USER)
-				.<DestinationUser, DestinationUser>chunk(1)
-				.reader(new UserReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationUserRepository))
-				.listener(new GenericChunkListener(TableNames.USER_SOURCE))
-				.listener(new GenericStepListener<>(TableNames.USER_DESTINATION, destinationUserRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForTransactionMigration()
-	{
-		return stepBuilderFactory.get(StepNames.TRANSACTIONS)
-				.<DestinationTransaction, DestinationTransaction>chunk(1)
-				.reader(new TransactionReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationTransactionRepository))
-				.listener(new GenericChunkListener(TableNames.TRANSACTION))
-				.listener(new GenericStepListener<>(TableNames.TRANSACTION, destinationTransactionRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForTemplateMigration()
-	{
-		return stepBuilderFactory.get(StepNames.TEMPLATES)
-				.<DestinationTemplate, DestinationTemplate>chunk(1)
-				.reader(new TemplateReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationTemplateRepository))
-				.listener(new GenericChunkListener(TableNames.TEMPLATE))
-				.listener(new GenericStepListener<>(TableNames.TEMPLATE, destinationTemplateRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-
-	@Bean
-	public Step createStepForTemplateGroupMigration()
-	{
-		return stepBuilderFactory.get(StepNames.TEMPLATE_GROUPS)
-				.<DestinationTemplateGroup, DestinationTemplateGroup>chunk(1)
-				.reader(new TemplateGroupReader(primaryDataSource))
-				.processor(new GenericDoNothingProcessor<>())
-				.writer(new GenericWriter<>(destinationTemplateGroupRepository))
-				.listener(new GenericChunkListener(TableNames.TEMPLATE_GROUP))
-				.listener(new GenericStepListener<>(TableNames.TEMPLATE_GROUP, destinationTemplateGroupRepository, context.getBean("jdbcTemplate2", JdbcTemplate.class), true))
-				.allowStartIfComplete(true)
-				.build();
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/CommandLineOptions.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/CommandLineOptions.java
deleted file mode 100644
index 88746d5447f5d601c0456ea170f980e6548c8677..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/CommandLineOptions.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-public enum CommandLineOptions
-{
-	SOURCE_URL("spring.datasource.jdbc-url", "source h2 database JDBC url, e.g. jdbc:h2:/C:/Users/Admin/AppData/Roaming/Deadlocker/BudgetMaster/debug/budgetmaster"),
-	DESTINATION_URL("spring.seconddatasource.jdbc-url", "destination database JDBC url (postgres ir mariadb), e.g. jdbc:postgresql://localhost:5432/budgetmaster"),
-	DESTINATION_DRIVER_CLASS_NAME("spring.seconddatasource.driver-class-name", "destination database driver class name, e.g. org.postgresql.Driver or org.mariadb.jdbc.Driver"),
-	DESTINATION_USER_NAME("spring.seconddatasource.username", "destination postresql user name, e.g. budgetmaster"),
-	DESTINATION_PASSWORD("spring.seconddatasource.password", "destination postresql password, e.g. BudgetMaster");
-
-	private final String name;
-	private final String description;
-
-	CommandLineOptions(String name, String description)
-	{
-		this.name = name;
-		this.description = description;
-	}
-
-	public String getName()
-	{
-		return name;
-	}
-
-	public String getDescription()
-	{
-		return description;
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/CustomIdGenerator.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/CustomIdGenerator.java
deleted file mode 100644
index 96be328044e9eb8d456da0156af8aaed488bcdbc..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/CustomIdGenerator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import org.hibernate.HibernateException;
-import org.hibernate.engine.spi.SharedSessionContractImplementor;
-import org.hibernate.id.IdentifierGenerator;
-import org.hibernate.id.IdentityGenerator;
-
-import java.io.Serializable;
-
-
-public class CustomIdGenerator extends IdentityGenerator implements IdentifierGenerator
-{
-	public static final String GENERATOR = "de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator";
-
-	@Override
-	public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException
-	{
-		final Serializable id = session.getEntityPersister(null, object).getClassMetadata().getIdentifier(object, session);
-
-		if(id == null)
-		{
-			return super.generate(session, object);
-		}
-		else
-		{
-			return id;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseMigratorMain.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseMigratorMain.java
deleted file mode 100644
index df58e32800627cafd924cdf24c4ad7f461ddee61..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseMigratorMain.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import org.apache.commons.cli.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.batch.core.Job;
-import org.springframework.batch.core.JobParametersBuilder;
-import org.springframework.batch.core.launch.JobLauncher;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class DatabaseMigratorMain implements CommandLineRunner
-{
-	public static DatabaseType databaseType;
-
-	private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseMigratorMain.class);
-
-	private final JobLauncher jobLauncher;
-
-	private final BatchConfiguration batchConfiguration;
-
-	@Qualifier("migrateJob")
-	private final Job migrateJob;
-
-	public DatabaseMigratorMain(JobLauncher jobLauncher, BatchConfiguration batchConfiguration, Job migrateJob)
-	{
-		this.jobLauncher = jobLauncher;
-		this.batchConfiguration = batchConfiguration;
-		this.migrateJob = migrateJob;
-	}
-
-	public static void main(String[] args) throws ParseException
-	{
-		final Options commandLineOptions = new Options();
-		for(CommandLineOptions option : CommandLineOptions.values())
-		{
-			commandLineOptions.addRequiredOption(null, option.getName(), true, option.getDescription());
-		}
-
-		showHelpIfRequested(args, commandLineOptions);
-
-		final CommandLineParser parser = new DefaultParser();
-		final CommandLine cmd = parser.parse(commandLineOptions, args);
-
-		for(CommandLineOptions option : CommandLineOptions.values())
-		{
-			LOGGER.debug("{}={}", option.getName(), cmd.getOptionValue(option.getName()));
-		}
-
-		databaseType = DatabaseType.fromDriverClassName(cmd.getOptionValue(CommandLineOptions.DESTINATION_DRIVER_CLASS_NAME.getName()));
-
-		SpringApplication.run(DatabaseMigratorMain.class, args);
-	}
-
-	private static void showHelpIfRequested(String[] args, Options availableCommandLineOptions) throws ParseException
-	{
-		final Options commandLineOptions = new Options();
-		commandLineOptions.addOption("h", "help", false, "Print this help");
-
-		final CommandLineParser parser = new DefaultParser();
-		final CommandLine cmd = parser.parse(commandLineOptions, args, true);
-
-		if(cmd.hasOption("help"))
-		{
-			final HelpFormatter formatter = new HelpFormatter();
-			formatter.setWidth(200);
-			formatter.printHelp("BudgetMasterMigrator", availableCommandLineOptions);
-			System.exit(0);
-		}
-	}
-
-	@Override
-	public void run(String... args) throws Exception
-	{
-		batchConfiguration.cleanDatabase();
-
-		jobLauncher.run(migrateJob, new JobParametersBuilder().toJobParameters());
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseType.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseType.java
deleted file mode 100644
index 0725be4210c00e3170f799167d244b5a3738b953..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseType.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-public enum DatabaseType
-{
-	POSTGRESQL("org.postgresql.Driver"),
-	MARIADB( "org.mariadb.jdbc.Driver");
-
-	private final String driverClassName;
-
-	DatabaseType(String driverClassName)
-	{
-		this.driverClassName = driverClassName;
-	}
-
-
-	public String getDriverClassName()
-	{
-		return driverClassName;
-	}
-
-	public static DatabaseType fromDriverClassName(String driverClassName)
-	{
-		for(DatabaseType type : values())
-		{
-			if(type.getDriverClassName().equalsIgnoreCase(driverClassName))
-			{
-				return type;
-			}
-		}
-
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/Utils.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/Utils.java
deleted file mode 100644
index b885385b4d96eadd9a27f1d7447532fe1c4e46bb..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/Utils.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import org.springframework.batch.core.BatchStatus;
-import org.springframework.batch.core.StepExecution;
-
-public class Utils
-{
-	private Utils()
-	{
-		// empty
-	}
-
-	public static int getCommitCount(StepExecution stepExecution)
-	{
-		final int commitCount = stepExecution.getCommitCount();
-		if(commitCount > 0 || stepExecution.getStatus().equals(BatchStatus.COMPLETED))
-		{
-			// subtract one because the commit count includes the final commit transaction
-			return commitCount - 1;
-		}
-		else
-		{
-			return commitCount;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationDatabaseConfiguration.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationDatabaseConfiguration.java
deleted file mode 100644
index 877baddadfa0bf4c3a8fdb81e3f798353caa1c6c..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationDatabaseConfiguration.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.orm.jpa.JpaTransactionManager;
-import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.persistence.EntityManagerFactory;
-import javax.sql.DataSource;
-
-@Configuration
-@EnableTransactionManagement
-@EnableJpaRepositories(
-		entityManagerFactoryRef = "secondaryEntityManagerFactory",
-		transactionManagerRef = "secondaryTransactionManager",
-		basePackages = {"de.deadlocker8.budgetmaster.databasemigrator.destination"}
-)
-public class DestinationDatabaseConfiguration
-{
-	@Bean(name = "secondaryDataSource")
-	@ConfigurationProperties(prefix = "spring.seconddatasource")
-	public DataSource secondaryDataSource()
-	{
-		return DataSourceBuilder.create().build();
-	}
-
-	@Bean(name = "secondaryEntityManagerFactory")
-	public LocalContainerEntityManagerFactoryBean secondaryEntityManagerFactory(EntityManagerFactoryBuilder builder,
-																				@Qualifier("secondaryDataSource") DataSource secondaryDataSource)
-	{
-		return builder
-				.dataSource(secondaryDataSource)
-				.packages("de.deadlocker8.budgetmaster.databasemigrator.destination")
-				.build();
-	}
-
-	@Bean(name = "secondaryTransactionManager")
-	public PlatformTransactionManager secondaryTransactionManager(
-			@Qualifier("secondaryEntityManagerFactory") EntityManagerFactory secondaryEntityManagerFactory)
-	{
-		return new JpaTransactionManager(secondaryEntityManagerFactory);
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationIntegerRepository.java
deleted file mode 100644
index f6e9f44b03df402f472d53226407c1e810016866..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationIntegerRepository.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination;
-
-import org.springframework.data.repository.NoRepositoryBean;
-
-import java.util.List;
-
-@NoRepositoryBean
-public interface DestinationIntegerRepository<T, ID> extends DestinationRepository<T, ID>
-{
-	List<T> findAllByOrderByIDDesc();
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationRepository.java
deleted file mode 100644
index d2f6affdecc2598d21f6ead76ab4be73986f4c19..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationRepository.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.repository.NoRepositoryBean;
-
-@NoRepositoryBean
-public interface DestinationRepository<T, ID> extends JpaRepository<T, ID>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/ProvidesID.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/ProvidesID.java
deleted file mode 100644
index 4a4d9a1dd0e5c529b14ce789b63b9e0409cce3c8..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/ProvidesID.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination;
-
-public interface ProvidesID
-{
-	Integer getID();
-
-	void setID(Integer ID);
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/StepNames.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/StepNames.java
deleted file mode 100644
index ce50ba3875d46f34d081f5c6af09171794b62c74..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/StepNames.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination;
-
-public class StepNames
-{
-	private StepNames()
-	{
-		// empty
-	}
-
-	public static final String IMAGES = "Migrate images";
-	public static final String ICONS = "Migrate icons";
-	public static final String CATEGORIES = "Migrate categories";
-	public static final String ACCOUNTS = "Migrate accounts";
-	public static final String CHARTS = "Migrate charts";
-	public static final String HINTS = "Migrate hints";
-
-	public static final String REPEATING_ENDS = "Migrate repeating end options";
-	public static final String REPEATING_END_AFTER_X_TIMES = "Migrate repeating end after x times";
-	public static final String REPEATING_END_DATE = "Migrate repeating end after date";
-	public static final String REPEATING_END_NEVER = "Migrate repeating end never";
-
-	public static final String REPEATING_MODIFIERS = "Migrate repeating modifiers";
-	public static final String REPEATING_MODIFIER_DAYS = "Migrate repeating modifier days";
-	public static final String REPEATING_MODIFIER_MONTHS = "Migrate repeating modifier months";
-	public static final String REPEATING_MODIFIER_YEARS = "Migrate repeating modifier years";
-
-	public static final String REPEATING_OPTIONS = "Migrate repeating options";
-
-	public static final String REPORT_COLUMNS = "Migrate report columns";
-	public static final String REPORT_SETTINGS = "Migrate report settings";
-
-	public static final String SETTINGS = "Migrate settings";
-
-	public static final String TAGS = "Migrate tags";
-	public static final String TEMPLATE_TAGS = "Migrate template tags";
-	public static final String TRANSACTION_TAGS = "Migrate transaction tags";
-
-	public static final String USER = "Migrate user";
-
-	public static final String TRANSACTIONS = "Migrate transactions";
-	public static final String TEMPLATES = "Migrate templates";
-	public static final String TEMPLATE_GROUPS = "Migrate template groups";
-}
-
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/TableNames.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/TableNames.java
deleted file mode 100644
index cecfc04e41874c28489cfa5bc56334a1dca551d6..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/TableNames.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination;
-
-public class TableNames
-{
-	private TableNames()
-	{
-		// empty
-	}
-
-	public static final String IMAGE = "image";
-	public static final String ICON = "icon";
-	public static final String CATEGORY = "category";
-	public static final String ACCOUNT = "account";
-	public static final String CHART = "chart";
-	public static final String HINT = "hint";
-
-	public static final String REPEATING_END = "repeating_end";
-	public static final String REPEATING_END_AFTER_X_TIMES = "repeating_end_afterxtimes";
-	public static final String REPEATING_END_DATE = "repeating_end_date";
-	public static final String REPEATING_END_NEVER = "repeating_end_never";
-
-	public static final String REPEATING_MODIFIER = "repeating_modifier";
-	public static final String REPEATING_MODIFIER_DAYS = "repeating_modifier_days";
-	public static final String REPEATING_MODIFIER_MONTHS = "repeating_modifier_months";
-	public static final String REPEATING_MODIFIER_YEARS = "repeating_modifier_years";
-
-	public static final String REPEATING_OPTION = "repeating_option";
-
-	public static final String REPORT_COLUMN = "report_column";
-	public static final String REPORT_SETTINGS = "report_settings";
-
-	public static final String SETTINGS = "settings";
-
-	public static final String TAG = "tag";
-	public static final String TEMPLATE_TAGS = "template_tags";
-	public static final String TRANSACTION_TAGS = "transaction_tags";
-
-	public static final String USER_SOURCE = "user";
-	public static final String USER_DESTINATION = "login_user";
-
-	public static final String TRANSACTION = "transaction";
-	public static final String TEMPLATE = "template";
-	public static final String TEMPLATE_GROUP = "template_group";
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccount.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccount.java
deleted file mode 100644
index 71e863acac8705b6cd7f0e117513ef26c5438720..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccount.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.account;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.ACCOUNT)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationAccount implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	@Column(unique = true)
-	private String name;
-
-	@Column(name = "is_selected")
-	private boolean isSelected;
-
-	@Column(name = "is_default")
-	private boolean isDefault;
-
-	@Column(name = "account_state")
-	private Integer accountState;
-
-	@Column(name = "icon_reference_id")
-	private Integer iconReferenceID;
-
-	private Integer type;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccountIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccountIntegerRepository.java
deleted file mode 100644
index 2e106fc94664593658f9f7033750acdf2d485fa9..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccountIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.account;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationAccountIntegerRepository extends DestinationIntegerRepository<DestinationAccount, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategory.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategory.java
deleted file mode 100644
index 3f89c0b799a8fc16ca5d1cd35ead7252652b2e1b..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.category;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.CATEGORY)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationCategory implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private String name;
-
-	private String color;
-
-	private Integer type;
-
-	@Column(name = "icon_reference_id")
-	private Integer iconReferenceID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategoryIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategoryIntegerRepository.java
deleted file mode 100644
index 0c41fd22cb08fc46818c138ab48187131d822779..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategoryIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.category;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationCategoryIntegerRepository extends DestinationIntegerRepository<DestinationCategory, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChart.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChart.java
deleted file mode 100644
index fa6031c1aad4ba5a17e3a4c717147486ec36c0f1..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChart.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.chart;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.CHART)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationChart implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private String name;
-
-	@Column(columnDefinition = "TEXT")
-	@ToString.Exclude
-	private String script;
-
-	private Integer type;
-	private int version;
-
-	@Column(name = "display_type")
-	private Integer displayType;
-
-	@Column(name = "group_type")
-	private Integer groupType;
-
-	@Column(name = "preview_image_file_name")
-	private String previewImageFileName;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChartIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChartIntegerRepository.java
deleted file mode 100644
index b0031c9c4b1ce7109c4e1f0b9f10d79d09cb3ad7..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChartIntegerRepository.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.chart;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationChartIntegerRepository extends DestinationIntegerRepository<DestinationChart, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHint.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHint.java
deleted file mode 100644
index b51fbbde3bf0f0b309a53a589cfebf9dad6db318..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHint.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.hint;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.HINT)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationHint implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	@Column(name = "localization_key")
-	private String localizationKey;
-
-	@Column(name = "is_dismissed")
-	private boolean isDismissed;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHintIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHintIntegerRepository.java
deleted file mode 100644
index 7f25f2cecacb9ad9db184a2971c11dd3626e7c3e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHintIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.hint;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationHintIntegerRepository extends DestinationIntegerRepository<DestinationHint, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIcon.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIcon.java
deleted file mode 100644
index b6b7b2c9810597b097ba115056bfe9a0305ccfde..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIcon.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.icon;
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.ICON)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationIcon implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	@Column(name = "image_id")
-	private Integer imageID;
-
-	@Column(name = "builtin_identifier")
-	private String builtinIdentifier;
-
-	@Column(name = "font_color")
-	private String fontColor;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIconIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIconIntegerRepository.java
deleted file mode 100644
index ca8481c65e1a10225f1ff7b1f3b33c5338f1826c..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIconIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.icon;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationIconIntegerRepository extends DestinationIntegerRepository<DestinationIcon, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImage.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImage.java
deleted file mode 100644
index f750dc76d65fddd414eb740bdb40bea48726db2a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImage.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.image;
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.IMAGE)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationImage implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	@Lob
-	@ToString.Exclude
-	private byte[] image;
-
-	@Column(name = "file_name")
-	private String fileName;
-
-	@Column(name = "file_extension")
-	private Integer fileExtension;
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImageIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImageIntegerRepository.java
deleted file mode 100644
index 6583a677bd95a918bd0ea7a8a160ea4d879ceb12..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImageIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.image;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationImageIntegerRepository extends DestinationIntegerRepository<DestinationImage, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOption.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOption.java
deleted file mode 100644
index eb89e70d05e41478ae501836152310c386ac4426..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOption.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-import java.time.LocalDate;
-
-@Entity
-@Table(name = TableNames.REPEATING_OPTION)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingOption implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	@Column(name = "start_date")
-	private LocalDate startDate;
-
-	@Column(name = "end_option_id")
-	private Integer endOptionID;
-
-	@Column(name = "modifier_id")
-	private Integer modifierID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOptionIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOptionIntegerRepository.java
deleted file mode 100644
index 623f5737b84d92aae378d2c084be90dec591c9de..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOptionIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingOptionIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingOption, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEnd.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEnd.java
deleted file mode 100644
index ddcc641237a3c8c45acde05daae999c80208c5de..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEnd.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.REPEATING_END)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingEnd implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-
-	private Integer ID;
-
-	@Column(name = "localization_key")
-	private String localizationKey;
-
-	private String type;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimes.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimes.java
deleted file mode 100644
index 784fcd9c890f6a09a292cffb99f4ce5bbc642c89..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimes.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = TableNames.REPEATING_END_AFTER_X_TIMES)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingEndAfterXTimes implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-
-	private Integer ID;
-
-	private Integer times;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimesIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimesIntegerRepository.java
deleted file mode 100644
index dab8aea1fd5acb595e223f25578df7f0e7d27b77..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimesIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingEndAfterXTimesIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingEndAfterXTimes, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDate.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDate.java
deleted file mode 100644
index 0e81e18986468e34d078662a88177879fe18832e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-import java.time.LocalDate;
-
-@Entity
-@Table(name = TableNames.REPEATING_END_DATE)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingEndDate implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-
-	private Integer ID;
-
-	@Column(name = "end_date")
-	private LocalDate endDate;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDateIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDateIntegerRepository.java
deleted file mode 100644
index d3ea8c693ee3f977a3bb5c9af2c7f3be8b2b6226..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDateIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingEndDateIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingEndDate, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndIntegerRepository.java
deleted file mode 100644
index 6e3bce33930d21dbcec72268cf1cf728d0fdab6a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingEndIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingEnd, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNever.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNever.java
deleted file mode 100644
index 7ed0ef451a9d407a7064bcea26ac4c110d9228a9..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNever.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = TableNames.REPEATING_END_NEVER)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingEndNever implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-
-	private Integer ID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNeverIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNeverIntegerRepository.java
deleted file mode 100644
index e54bc8c7e5a0268e7ec222f1a3bf93bd8c6207dc..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNeverIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingEndNeverIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingEndNever, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifier.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifier.java
deleted file mode 100644
index b0034154f72b34d031803cc908aecdd6e4fb0208..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifier.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.REPEATING_MODIFIER)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingModifier implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	@Column(name = "localization_key")
-	private String localizationKey;
-
-	private String type;
-
-	private Integer quantity;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDays.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDays.java
deleted file mode 100644
index 9ce7fe3776030afddbb92696d2f422cc7467193e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDays.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = TableNames.REPEATING_MODIFIER_DAYS)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingModifierDays implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDaysIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDaysIntegerRepository.java
deleted file mode 100644
index 8ce35b0461f49f74534ad79efb120b24966d52e5..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDaysIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingModifierDaysIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingModifierDays, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierIntegerRepository.java
deleted file mode 100644
index 05c5eebf9ec150802e0eb567f173463ed7a51ed5..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingModifierIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingModifier, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonths.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonths.java
deleted file mode 100644
index 11396244a68cbc8b9883014e2746078531690162..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonths.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = TableNames.REPEATING_MODIFIER_MONTHS)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingModifierMonths implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonthsIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonthsIntegerRepository.java
deleted file mode 100644
index b498c5a14eaedabf6a04c8fe8c23f2c5fa8e9083..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonthsIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingModifierMonthsIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingModifierMonths, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYears.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYears.java
deleted file mode 100644
index 00ef170111b4da75d10ab82b05cb97c34ed394a3..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYears.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = TableNames.REPEATING_MODIFIER_YEARS)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationRepeatingModifierYears implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYearsIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYearsIntegerRepository.java
deleted file mode 100644
index 7531f8fb1626b33157b843643706c5a5549e886c..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYearsIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationRepeatingModifierYearsIntegerRepository extends DestinationIntegerRepository<DestinationRepeatingModifierYears, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumn.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumn.java
deleted file mode 100644
index c85efde7dc546e1fe45a159e06bb4240cf9e28a5..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumn.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.report;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.REPORT_COLUMN)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationReportColumn implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private boolean activated;
-
-	@Column(name = "localization_key")
-	private String localizationKey;
-
-	@Column(name = "column_position")
-	private Integer columnPosition;
-
-	@Column(name = "referring_settings_id")
-	private Integer referringSettingsID = 1;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumnIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumnIntegerRepository.java
deleted file mode 100644
index 45ec29d684a399d7231f93db68be707639a8109f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumnIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.report;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationReportColumnIntegerRepository extends DestinationIntegerRepository<DestinationReportColumn, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettings.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettings.java
deleted file mode 100644
index 69e8626c874e0c3ec68e2091cdcc078053348885..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettings.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.report;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-import java.time.LocalDate;
-
-@Entity
-@Table(name = TableNames.REPORT_SETTINGS)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationReportSettings implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private LocalDate date;
-
-	@Column(name = "include_budget")
-	private boolean includeBudget;
-
-	@Column(name = "include_category_budgets")
-	private boolean includeCategoryBudgets;
-
-	@Column(name = "split_tables")
-	private boolean splitTables;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettingsIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettingsIntegerRepository.java
deleted file mode 100644
index f44226f299a2254a5a5f5bf1ddb3a88ddb74b909..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettingsIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.report;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationReportSettingsIntegerRepository extends DestinationIntegerRepository<DestinationReportSettings, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettings.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettings.java
deleted file mode 100644
index 2166bdb340db8bb680d713d24382737cb4d2562a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettings.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.settings;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-import java.time.LocalDate;
-
-@Entity
-@Table(name = TableNames.SETTINGS)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationSettings implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private String currency;
-
-	@Column(name = "rest_activated")
-	private boolean restActivated;
-
-	private Integer language;
-
-	@Column(name = "use_dark_theme")
-	private boolean useDarkTheme;
-
-	@Column(name = "show_categories_as_circles")
-	private boolean showCategoriesAsCircles;
-
-	@Column(name = "auto_update_check_enabled")
-	private boolean autoUpdateCheckEnabled;
-
-	@Column(name = "backup_reminder_activated")
-	private boolean backupReminderActivated;
-
-	@Column(name = "last_backup_reminder_date")
-	private LocalDate lastBackupReminderDate;
-
-	@Column(name = "search_items_per_page")
-	private Integer searchItemsPerPage;
-
-	@Column(name = "auto_backup_strategy")
-	private Integer autoBackupStrategy;
-
-	@Column(name = "auto_backup_days")
-	private Integer autoBackupDays;
-
-	@Column(name = "auto_backup_time")
-	private Integer autoBackupTime;
-
-	@Column(name = "auto_backup_files_to_keep")
-	private Integer autoBackupFilesToKeep;
-
-	@Column(name = "auto_backup_git_url")
-	private String autoBackupGitUrl;
-
-	@Column(name = "auto_backup_git_branch_name")
-	private String autoBackupGitBranchName;
-
-	@Column(name = "auto_backup_git_user_name")
-	private String autoBackupGitUserName;
-
-	@Column(name = "auto_backup_git_token")
-	private String autoBackupGitToken;
-
-	@Column(name = "installed_version_code")
-	private Integer installedVersionCode;
-
-	@Column(name = "whats_new_shown_for_current_version")
-	private Boolean whatsNewShownForCurrentVersion;
-
-	@Column(name = "migration_declined")
-	private Boolean migrationDeclined = false;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettingsIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettingsIntegerRepository.java
deleted file mode 100644
index a8f0e08537f722538937c60bd6d0ec836d6ef23e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettingsIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.settings;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationSettingsIntegerRepository extends DestinationIntegerRepository<DestinationSettings, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTag.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTag.java
deleted file mode 100644
index 4745f35897fcc944e03727ea9978dea8ceaeaa1d..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTag.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.tag;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = TableNames.TAG)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationTag implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private String name;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTagIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTagIntegerRepository.java
deleted file mode 100644
index 6c62aeff5751da85c694ff07d8d58755b926a7d6..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTagIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.tag;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationTagIntegerRepository extends DestinationIntegerRepository<DestinationTag, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTag.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTag.java
deleted file mode 100644
index f5552fca2c1d5a86e4fdda563b514741005ec95e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTag.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.tag;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-
-import javax.persistence.*;
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Objects;
-
-@Entity
-@Table(name = TableNames.TEMPLATE_TAGS)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-@IdClass(DestinationTemplateTag.DestinationTemplateTagId.class)
-public class DestinationTemplateTag implements ProvidesID
-{
-	public static final class DestinationTemplateTagId implements Serializable
-	{
-		@Serial
-		private static final long serialVersionUID = 0L;
-		private Integer templateID;
-		private Integer tagsID;
-
-		public DestinationTemplateTagId(Integer templateID, Integer tagsID)
-		{
-			this.templateID = templateID;
-			this.tagsID = tagsID;
-		}
-
-		public DestinationTemplateTagId()
-		{
-		}
-
-		public Integer templateID()
-		{
-			return templateID;
-		}
-
-		public Integer tagsID()
-		{
-			return tagsID;
-		}
-
-		@Override
-		public boolean equals(Object obj)
-		{
-			if(obj == this) return true;
-			if(obj == null || obj.getClass() != this.getClass()) return false;
-			var that = (DestinationTemplateTagId) obj;
-			return Objects.equals(this.templateID, that.templateID) &&
-					Objects.equals(this.tagsID, that.tagsID);
-		}
-
-		@Override
-		public int hashCode()
-		{
-			return Objects.hash(templateID, tagsID);
-		}
-
-		@Override
-		public String toString()
-		{
-			return "DestinationTemplateTagId[" +
-					"templateID=" + templateID + ", " +
-					"tagsID=" + tagsID + ']';
-		}
-
-	}
-
-	@Id
-	@Column(name = "template_id")
-	private int templateID;
-
-	@Id
-	@Column(name = "tags_id")
-	private int tagsID;
-
-	@Override
-	public Integer getID()
-	{
-		return null;
-	}
-
-	@Override
-	public void setID(Integer ID)
-	{
-		// not allowed
-	}
-}
-
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTagIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTagIntegerRepository.java
deleted file mode 100644
index 327d8bfc47f8edb0f759323e3dcb2c23794500f6..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTagIntegerRepository.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.tag;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository;
-
-public interface DestinationTemplateTagIntegerRepository extends DestinationRepository<DestinationTemplateTag, DestinationTemplateTag.DestinationTemplateTagId>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTag.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTag.java
deleted file mode 100644
index 9c4215e4e2030530208e4ac92cfae33139411b67..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTag.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.tag;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-
-import javax.persistence.*;
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Objects;
-
-@Entity
-@Table(name = TableNames.TRANSACTION_TAGS)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-@IdClass(DestinationTransactionTag.DestinationTransactionTagId.class)
-public class DestinationTransactionTag implements ProvidesID
-{
-	public static final class DestinationTransactionTagId implements Serializable
-	{
-		@Serial
-		private static final long serialVersionUID = 0L;
-		private Integer transactionID;
-		private Integer tagsID;
-
-		public DestinationTransactionTagId(Integer transactionID, Integer tagsID)
-		{
-			this.transactionID = transactionID;
-			this.tagsID = tagsID;
-		}
-
-		public DestinationTransactionTagId()
-		{
-		}
-
-		public Integer transactionID()
-		{
-			return transactionID;
-		}
-
-		public Integer tagsID()
-		{
-			return tagsID;
-		}
-
-		@Override
-		public boolean equals(Object obj)
-		{
-			if(obj == this) return true;
-			if(obj == null || obj.getClass() != this.getClass()) return false;
-			var that = (DestinationTransactionTagId) obj;
-			return Objects.equals(this.transactionID, that.transactionID) &&
-					Objects.equals(this.tagsID, that.tagsID);
-		}
-
-		@Override
-		public int hashCode()
-		{
-			return Objects.hash(transactionID, tagsID);
-		}
-
-		@Override
-		public String toString()
-		{
-			return "DestinationTransactionTagId[" +
-					"transactionID=" + transactionID + ", " +
-					"tagsID=" + tagsID + ']';
-		}
-
-	}
-
-	@Id
-	@Column(name = "transaction_id")
-	private int transactionID;
-
-	@Id
-	@Column(name = "tags_id")
-	private int tagsID;
-
-	@Override
-	public Integer getID()
-	{
-		return null;
-	}
-
-	@Override
-	public void setID(Integer ID)
-	{
-		// not allowed
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTagIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTagIntegerRepository.java
deleted file mode 100644
index 86454f068776a95d7842e1713621718950454bce..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTagIntegerRepository.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.tag;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository;
-
-public interface DestinationTransactionTagIntegerRepository extends DestinationRepository<DestinationTransactionTag, DestinationTransactionTag.DestinationTransactionTagId>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplate.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplate.java
deleted file mode 100644
index 56c175f2bea84bbd1f8bb4cb3a2a4757375aa5bf..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplate.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.template;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.TEMPLATE)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationTemplate implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	@Column(name = "template_name")
-	private String templateName;
-
-	private Integer amount;
-
-	@Column(name = "is_expenditure")
-	private Boolean isExpenditure;
-
-	@Column(name = "account_id")
-	private Integer accountID;
-
-	@Column(name = "category_id")
-	private Integer categoryID;
-
-	private String name;
-
-	private String description;
-
-	@Column(name = "icon_reference_id")
-	private Integer iconReferenceID;
-
-	@Column(name = "transfer_account_id")
-	private Integer transferAccountID;
-
-	@Column(name = "template_group_id")
-	private Integer templateGroupID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplateIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplateIntegerRepository.java
deleted file mode 100644
index 2751c32b7d65f7f172fb1ce7d0a14aaf3826d5c7..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplateIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.template;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationTemplateIntegerRepository extends DestinationIntegerRepository<DestinationTemplate, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroup.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroup.java
deleted file mode 100644
index 7f66d18a83305678530e6b1f9a03ed9050f45552..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroup.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = TableNames.TEMPLATE_GROUP)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationTemplateGroup implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private String name;
-
-	private Integer type;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroupIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroupIntegerRepository.java
deleted file mode 100644
index 2bdab8fd4752dbc12c722114d9efdcb224e0761b..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroupIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationTemplateGroupIntegerRepository extends DestinationIntegerRepository<DestinationTemplateGroup, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransaction.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransaction.java
deleted file mode 100644
index ecf13ba5b024b43e439eab7c3daf7f40c66791a5..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransaction.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.transaction;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-import java.time.LocalDate;
-
-@Entity
-@Table(name = TableNames.TRANSACTION)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationTransaction implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private Integer amount;
-
-	@Column(name = "is_expenditure")
-	private Boolean isExpenditure;
-
-	private LocalDate date;
-
-	@Column(name = "account_id")
-	private Integer accountID;
-
-	@Column(name = "category_id")
-	private Integer categoryID;
-
-	private String name;
-
-	private String description;
-
-	@Column(name = "repeating_option_id")
-	private Integer repeatingOptionID;
-
-	@Column(name = "transfer_account_id")
-	private Integer transferAccountID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransactionIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransactionIntegerRepository.java
deleted file mode 100644
index 7d3f67f0c249b574908a30187d35f8e827a586cf..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransactionIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.transaction;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationTransactionIntegerRepository extends DestinationIntegerRepository<DestinationTransaction, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUser.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUser.java
deleted file mode 100644
index 720c88b414106e12661e36df3c96b0d47f194814..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUser.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.user;
-
-
-import de.deadlocker8.budgetmaster.databasemigrator.CustomIdGenerator;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = TableNames.USER_DESTINATION)
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@EqualsAndHashCode
-@ToString
-public class DestinationUser implements ProvidesID
-{
-	@Id
-	@GeneratedValue(generator = "custom_generator")
-	@GenericGenerator(name = "custom_generator", strategy = CustomIdGenerator.GENERATOR)
-	private Integer ID;
-
-	private String name;
-
-	private String password;
-
-	@Column(name = "selected_account_id")
-	private Integer selectedAccountID;
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUserIntegerRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUserIntegerRepository.java
deleted file mode 100644
index 6d7c86cb20df5272bc4092173453e02550031b5c..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUserIntegerRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.destination.user;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-
-public interface DestinationUserIntegerRepository extends DestinationIntegerRepository<DestinationUser, Integer>
-{
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericChunkListener.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericChunkListener.java
deleted file mode 100644
index c19b1ab086109d798846f3cae53d1e3e7b629bc7..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericChunkListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.listener;
-
-import de.deadlocker8.budgetmaster.databasemigrator.Utils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.batch.core.ChunkListener;
-import org.springframework.batch.core.scope.context.ChunkContext;
-
-public class GenericChunkListener implements ChunkListener
-{
-	private static final Logger LOGGER = LoggerFactory.getLogger(GenericChunkListener.class);
-
-	private final String itemName;
-
-	private int numberOfProcessedItems = 0;
-
-	public GenericChunkListener(String itemName)
-	{
-		this.itemName = itemName;
-	}
-
-	@Override
-	public void beforeChunk(ChunkContext context)
-	{
-		// nothing to do
-	}
-
-	@Override
-	public void afterChunk(ChunkContext context)
-	{
-		final int count = Utils.getCommitCount(context.getStepContext().getStepExecution());
-		if(count > numberOfProcessedItems)
-		{
-			numberOfProcessedItems++;
-			LOGGER.info("Migrating {} {}", itemName, count);
-		}
-	}
-
-	@Override
-	public void afterChunkError(ChunkContext context)
-	{
-		// nothing to do
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericJobListener.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericJobListener.java
deleted file mode 100644
index f396619295a3f8f96b803257402d8daaec95d4c8..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericJobListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.listener;
-
-import de.deadlocker8.budgetmaster.databasemigrator.Utils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.batch.core.BatchStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.JobExecutionListener;
-import org.springframework.batch.core.StepExecution;
-
-public class GenericJobListener implements JobExecutionListener
-{
-	private static final Logger LOGGER = LoggerFactory.getLogger(GenericJobListener.class);
-
-	@Override
-	public void beforeJob(JobExecution jobExecution)
-	{
-		// nothing to do
-	}
-
-	@Override
-	public void afterJob(JobExecution jobExecution)
-	{
-		LOGGER.info("\n");
-		LOGGER.info("==================================================");
-		LOGGER.info("### Migration results ###");
-		for(StepExecution stepExecution : jobExecution.getStepExecutions())
-		{
-			final BatchStatus status = stepExecution.getStatus();
-			final String name = stepExecution.getStepName();
-			final int commitCount = Utils.getCommitCount(stepExecution);
-			final int readCount = stepExecution.getReadCount();
-			LOGGER.info("[{}] {}: {}/{}", status, name, commitCount, readCount);
-		}
-		LOGGER.info("==================================================\n");
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java
deleted file mode 100644
index 270a657a71d3ed01ad286f205f10985b15e22b4a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.listener;
-
-import de.deadlocker8.budgetmaster.databasemigrator.DatabaseMigratorMain;
-import de.deadlocker8.budgetmaster.databasemigrator.DatabaseType;
-import de.deadlocker8.budgetmaster.databasemigrator.Utils;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.batch.core.StepExecutionListener;
-import org.springframework.jdbc.core.JdbcTemplate;
-
-import java.text.MessageFormat;
-import java.util.List;
-
-public class GenericStepListener<T extends ProvidesID, ID> implements StepExecutionListener
-{
-	private static final Logger LOGGER = LoggerFactory.getLogger(GenericStepListener.class);
-
-	private final String tableName;
-	private final DestinationRepository<T, ID> repository;
-	private final JdbcTemplate jdbcTemplate;
-	private final boolean adjustSequence;
-
-	public GenericStepListener(String tableName, DestinationRepository<T, ID> repository, JdbcTemplate jdbcTemplate, boolean adjustSequence)
-	{
-		this.tableName = tableName;
-		this.repository = repository;
-		this.jdbcTemplate = jdbcTemplate;
-		this.adjustSequence = adjustSequence;
-	}
-
-	@Override
-	public void beforeStep(StepExecution stepExecution)
-	{
-		LOGGER.info("\n");
-		LOGGER.info(">>> Migrate {}s...", tableName);
-
-		if(adjustSequence && DatabaseMigratorMain.databaseType.equals(DatabaseType.POSTGRESQL))
-		{
-			LOGGER.debug("Resetting sequence to 0");
-			jdbcTemplate.update(MessageFormat.format("ALTER SEQUENCE {0}_id_seq RESTART WITH 1", tableName));
-		}
-	}
-
-	@Override
-	public ExitStatus afterStep(StepExecution stepExecution)
-	{
-		final int count = Utils.getCommitCount(stepExecution);
-		LOGGER.info(">>> Successfully migrated {} {}s\n", count, tableName);
-
-		if(adjustSequence && DatabaseMigratorMain.databaseType.equals(DatabaseType.POSTGRESQL))
-		{
-			final int highestUsedID = getHighestUsedID();
-			final int newSequence = highestUsedID + 1;
-			LOGGER.debug("Adjusting sequence to {} (highest used id: {})", newSequence, highestUsedID);
-			jdbcTemplate.update(MessageFormat.format("ALTER SEQUENCE {0}_id_seq RESTART WITH {1}", tableName, String.valueOf(newSequence)));
-		}
-
-		return null;
-	}
-
-	public Integer getHighestUsedID()
-	{
-		if(repository instanceof DestinationIntegerRepository<T,ID> integerRepository)
-		{
-			final List<T> itemsOrderedByID = integerRepository.findAllByOrderByIDDesc();
-			if(itemsOrderedByID.isEmpty())
-			{
-				return 0;
-			}
-
-			return itemsOrderedByID.get(0).getID();
-		}
-
-		return null;
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/source/SourceDatabaseConfiguration.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/source/SourceDatabaseConfiguration.java
deleted file mode 100644
index 0e21a5a8d67824118134a19df7825ff589d0233a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/source/SourceDatabaseConfiguration.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.source;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.orm.jpa.JpaTransactionManager;
-import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.persistence.EntityManagerFactory;
-import javax.sql.DataSource;
-
-@Configuration
-@EnableTransactionManagement
-@EnableJpaRepositories(
-		entityManagerFactoryRef = "primaryEntityManagerFactory",
-		transactionManagerRef = "primaryTransactionManager",
-		basePackages = {"de.deadlocker8.budgetmaster.databasemigrator.source"}
-)
-public class SourceDatabaseConfiguration
-{
-	@Bean(name = "primaryDataSource")
-	@Primary
-	@ConfigurationProperties(prefix = "spring.datasource")
-	public DataSource primaryDataSource()
-	{
-		return DataSourceBuilder.create().build();
-	}
-
-	@Primary
-	@Bean(name = "primaryEntityManagerFactory")
-	public LocalContainerEntityManagerFactoryBean primaryEntityManagerFactory(EntityManagerFactoryBuilder builder,
-																			  @Qualifier("primaryDataSource") DataSource primaryDataSource)
-	{
-		return builder
-				.dataSource(primaryDataSource)
-				.packages("de.deadlocker8.budgetmaster.databasemigrator.source")
-				.build();
-	}
-
-	@Bean(name = "primaryTransactionManager")
-	public PlatformTransactionManager primaryTransactionManager(
-			@Qualifier("primaryEntityManagerFactory") EntityManagerFactory primaryEntityManagerFactory)
-	{
-		return new JpaTransactionManager(primaryEntityManagerFactory);
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/GenericDoNothingProcessor.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/GenericDoNothingProcessor.java
deleted file mode 100644
index 32d5713fdacad4a502bfed3b780a642277c451ed..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/GenericDoNothingProcessor.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.batch.item.ItemProcessor;
-
-public class GenericDoNothingProcessor<T> implements ItemProcessor<T, T>
-{
-	private static final Logger LOGGER = LoggerFactory.getLogger(GenericDoNothingProcessor.class);
-
-	@Override
-	public T process(T item)
-	{
-		LOGGER.debug("GenericDoNothingProcessor: Processing item: {}", item);
-		return item;
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/GenericWriter.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/GenericWriter.java
deleted file mode 100644
index a0bd628d033c98a7deef888a1aee8a4b528ccd5f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/GenericWriter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.batch.item.ItemWriter;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public class GenericWriter<T, ID> implements ItemWriter<T>
-{
-	private static final Logger LOGGER = LoggerFactory.getLogger(GenericWriter.class);
-
-	final JpaRepository<T, ID> repository;
-
-	public GenericWriter(JpaRepository<T, ID> repository)
-	{
-		this.repository = repository;
-	}
-
-	@Override
-	public void write(List<? extends T> list)
-	{
-		for(T data : list)
-		{
-			LOGGER.debug("GenericWriter: Writing: {}", data);
-			repository.save(data);
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/AccountReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/AccountReader.java
deleted file mode 100644
index 8d4ce0cb2c064d9554c864183fc2ba0d62f9977e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/AccountReader.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.account.DestinationAccount;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class AccountReader extends BaseReader<DestinationAccount>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String NAME = "NAME";
-		public static final String IS_SELECTED = "IS_SELECTED";
-		public static final String IS_DEFAULT = "IS_DEFAULT";
-		public static final String ACCOUNT_STATE = "ACCOUNT_STATE";
-		public static final String ICON_REFERENCE_ID = "ICON_REFERENCE_ID";
-		public static final String TYPE = "TYPE";
-	}
-
-	public AccountReader(DataSource primaryDataSource)
-	{
-		super(TableNames.ACCOUNT, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationAccount> getRowMapper()
-	{
-		return new AccountRowMapper();
-	}
-
-	public static class AccountRowMapper implements RowMapper<DestinationAccount>
-	{
-		@Override
-		public DestinationAccount mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationAccount account = new DestinationAccount();
-			account.setID(rs.getInt(DatabaseColumns.ID));
-			account.setDefault(rs.getBoolean(DatabaseColumns.IS_DEFAULT));
-			account.setSelected(rs.getBoolean(DatabaseColumns.IS_SELECTED));
-			account.setName(rs.getString(DatabaseColumns.NAME));
-			account.setAccountState(rs.getInt(DatabaseColumns.ACCOUNT_STATE));
-			account.setType(rs.getInt(DatabaseColumns.TYPE));
-			account.setIconReferenceID(getIntOrNull(rs, DatabaseColumns.ICON_REFERENCE_ID));
-			return account;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/BaseReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/BaseReader.java
deleted file mode 100644
index f3c52175028f5eb6aec32ddaf0849dacf08ef7fb..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/BaseReader.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import org.springframework.batch.item.ItemReader;
-import org.springframework.batch.item.database.JdbcCursorItemReader;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.text.MessageFormat;
-
-public abstract class BaseReader<T> extends JdbcCursorItemReader<T> implements ItemReader<T>
-{
-	private static final int FETCH_SIZE = 100;
-
-	protected BaseReader(String tableName, @Autowired DataSource primaryDataSource)
-	{
-		setDataSource(primaryDataSource);
-		setSql(MessageFormat.format("SELECT * FROM {0}", tableName));
-		setFetchSize(FETCH_SIZE);
-		setRowMapper(getRowMapper());
-	}
-
-	protected abstract RowMapper<T> getRowMapper();
-
-	protected static Integer getIntOrNull(ResultSet resultSet, String columnName) throws SQLException
-	{
-		final Integer intFromDatabase = resultSet.getInt(columnName);
-		if(resultSet.wasNull())
-		{
-			return null;
-		}
-
-		return intFromDatabase;
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/CategoryReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/CategoryReader.java
deleted file mode 100644
index bf1f7593c4761e735c3b9c63efbc9b28d57caeda..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/CategoryReader.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategory;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class CategoryReader extends BaseReader<DestinationCategory>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String NAME = "NAME";
-		public static final String COLOR = "COLOR";
-		public static final String TYPE = "TYPE";
-		public static final String ICON_REFERENCE_ID = "ICON_REFERENCE_ID";
-	}
-
-	public CategoryReader(DataSource primaryDataSource)
-	{
-		super(TableNames.CATEGORY, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationCategory> getRowMapper()
-	{
-		return new CategoryRowMapper();
-	}
-
-	public static class CategoryRowMapper implements RowMapper<DestinationCategory>
-	{
-		@Override
-		public DestinationCategory mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationCategory category = new DestinationCategory();
-			category.setID(rs.getInt(DatabaseColumns.ID));
-			category.setName(rs.getString(DatabaseColumns.NAME));
-			category.setColor(rs.getString(DatabaseColumns.COLOR));
-			category.setType(rs.getInt(DatabaseColumns.TYPE));
-			category.setIconReferenceID(getIntOrNull(rs, DatabaseColumns.ICON_REFERENCE_ID));
-			return category;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/ChartReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/ChartReader.java
deleted file mode 100644
index 8a93600c7b776c6864bed209c87a05f5cab62ed0..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/ChartReader.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.chart.DestinationChart;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class ChartReader extends BaseReader<DestinationChart>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String NAME = "NAME";
-		public static final String SCRIPT = "SCRIPT";
-		public static final String TYPE = "TYPE";
-		public static final String VERSION = "VERSION";
-		public static final String DISPLAY_TYPE = "DISPLAY_TYPE";
-		public static final String GROUP_TYPE = "GROUP_TYPE";
-		public static final String PREVIEW_IMAGE_FILE_NAME = "PREVIEW_IMAGE_FILE_NAME";
-	}
-
-	public ChartReader(DataSource primaryDataSource)
-	{
-		super(TableNames.CHART, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationChart> getRowMapper()
-	{
-		return new ChartRowMapper();
-	}
-
-	public static class ChartRowMapper implements RowMapper<DestinationChart>
-	{
-		@Override
-		public DestinationChart mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationChart chart = new DestinationChart();
-			chart.setID(rs.getInt(DatabaseColumns.ID));
-			chart.setName(rs.getString(DatabaseColumns.NAME));
-			chart.setScript(rs.getString(DatabaseColumns.SCRIPT));
-			chart.setType(rs.getInt(DatabaseColumns.TYPE));
-			chart.setVersion(rs.getInt(DatabaseColumns.VERSION));
-			chart.setDisplayType(rs.getInt(DatabaseColumns.DISPLAY_TYPE));
-			chart.setGroupType(rs.getInt(DatabaseColumns.GROUP_TYPE));
-			chart.setPreviewImageFileName(rs.getString(DatabaseColumns.PREVIEW_IMAGE_FILE_NAME));
-			return chart;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/HintReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/HintReader.java
deleted file mode 100644
index 5ee0e969bc324a3fffd42467a6a6f9d089a190f1..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/HintReader.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.hint.DestinationHint;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class HintReader extends BaseReader<DestinationHint>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String LOCALIZATION_KEY = "LOCALIZATION_KEY";
-		public static final String IS_DISMISSED = "IS_DISMISSED";
-	}
-
-	public HintReader(DataSource primaryDataSource)
-	{
-		super(TableNames.HINT, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationHint> getRowMapper()
-	{
-		return new HintRowMapper();
-	}
-
-	public static class HintRowMapper implements RowMapper<DestinationHint>
-	{
-		@Override
-		public DestinationHint mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationHint hint = new DestinationHint();
-			hint.setID(rs.getInt(DatabaseColumns.ID));
-			hint.setLocalizationKey(rs.getString(DatabaseColumns.LOCALIZATION_KEY));
-			hint.setDismissed(rs.getBoolean(DatabaseColumns.IS_DISMISSED));
-			return hint;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/IconReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/IconReader.java
deleted file mode 100644
index e3c218818cefd7f4c85bfa05ba568d2fa63922d5..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/IconReader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.icon.DestinationIcon;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class IconReader extends BaseReader<DestinationIcon>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String BUILTIN_IDENTIFIER = "BUILTIN_IDENTIFIER";
-		public static final String IMAGE_ID = "IMAGE_ID";
-		public static final String FONT_COLOR = "FONT_COLOR";
-	}
-
-	public IconReader(DataSource primaryDataSource)
-	{
-		super(TableNames.ICON, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationIcon> getRowMapper()
-	{
-		return new IconRowMapper();
-	}
-
-	public static class IconRowMapper implements RowMapper<DestinationIcon>
-	{
-		@Override
-		public DestinationIcon mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationIcon icon = new DestinationIcon();
-			icon.setID(rs.getInt(DatabaseColumns.ID));
-			icon.setBuiltinIdentifier(rs.getString(DatabaseColumns.BUILTIN_IDENTIFIER));
-			icon.setImageID(getIntOrNull(rs, DatabaseColumns.IMAGE_ID));
-			icon.setFontColor(rs.getString(DatabaseColumns.FONT_COLOR));
-			return icon;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/ImageReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/ImageReader.java
deleted file mode 100644
index 4cd4be19c3e0fa73a2810cbf3812c8ac76b7c513..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/ImageReader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.image.DestinationImage;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class ImageReader extends BaseReader<DestinationImage>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String FILE_EXTENSION = "FILE_EXTENSION";
-		public static final String FILE_NAME = "FILE_NAME";
-		public static final String IMAGE = "IMAGE";
-	}
-
-	public ImageReader(DataSource primaryDataSource)
-	{
-		super(TableNames.IMAGE, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationImage> getRowMapper()
-	{
-		return new ImageRowMapper();
-	}
-
-	public static class ImageRowMapper implements RowMapper<DestinationImage>
-	{
-		@Override
-		public DestinationImage mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationImage image = new DestinationImage();
-			image.setID(rs.getInt(DatabaseColumns.ID));
-			image.setFileExtension(getIntOrNull(rs, DatabaseColumns.FILE_EXTENSION));
-			image.setFileName(rs.getString(DatabaseColumns.FILE_NAME));
-			image.setImage(rs.getBytes(DatabaseColumns.IMAGE));
-			return image;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/SettingsReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/SettingsReader.java
deleted file mode 100644
index 485b30ba9d87b9b925001e99bb27e289914aea71..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/SettingsReader.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.settings.DestinationSettings;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class SettingsReader extends BaseReader<DestinationSettings>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String CURRENCY = "CURRENCY";
-		public static final String LANGUAGE = "LANGUAGE";
-		public static final String USE_DARK_THEME = "USE_DARK_THEME";
-		public static final String SHOW_CATEGORIES_AS_CIRCLES = "SHOW_CATEGORIES_AS_CIRCLES";
-		public static final String AUTO_UPDATE_CHECK_ENABLED = "AUTO_UPDATE_CHECK_ENABLED";
-		public static final String BACKUP_REMINDER_ACTIVATED = "BACKUP_REMINDER_ACTIVATED";
-		public static final String LAST_BACKUP_REMINDER_DATE = "LAST_BACKUP_REMINDER_DATE";
-		public static final String SEARCH_ITEMS_PER_PAGE = "SEARCH_ITEMS_PER_PAGE";
-
-		public static final String AUTO_BACKUP_STRATEGY = "AUTO_BACKUP_STRATEGY";
-		public static final String AUTO_BACKUP_DAYS = "AUTO_BACKUP_DAYS";
-		public static final String AUTO_BACKUP_TIME = "AUTO_BACKUP_TIME";
-		public static final String AUTO_BACKUP_FILES_TO_KEEP = "AUTO_BACKUP_FILES_TO_KEEP";
-
-		public static final String AUTO_BACKUP_GIT_URL = "AUTO_BACKUP_GIT_URL";
-		public static final String AUTO_BACKUP_GIT_BRANCH_NAME = "AUTO_BACKUP_GIT_BRANCH_NAME";
-		public static final String AUTO_BACKUP_GIT_USER_NAME = "AUTO_BACKUP_GIT_USER_NAME";
-		public static final String AUTO_BACKUP_GIT_TOKEN = "AUTO_BACKUP_GIT_TOKEN";
-
-		public static final String INSTALLED_VERSION_CODE = "INSTALLED_VERSION_CODE";
-		public static final String WHATS_NEW_SHOWN_FOR_CURRENT_VERSION = "WHATS_NEW_SHOWN_FOR_CURRENT_VERSION";
-	}
-
-	public SettingsReader(DataSource primaryDataSource)
-	{
-		super(TableNames.SETTINGS, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationSettings> getRowMapper()
-	{
-		return new SettingsRowMapper();
-	}
-
-	public static class SettingsRowMapper implements RowMapper<DestinationSettings>
-	{
-		@Override
-		public DestinationSettings mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationSettings settings = new DestinationSettings();
-			settings.setID(1);
-			settings.setCurrency(rs.getString(DatabaseColumns.CURRENCY));
-			settings.setLanguage(rs.getInt(DatabaseColumns.LANGUAGE));
-			settings.setUseDarkTheme(rs.getBoolean(DatabaseColumns.USE_DARK_THEME));
-			settings.setShowCategoriesAsCircles(rs.getBoolean(DatabaseColumns.SHOW_CATEGORIES_AS_CIRCLES));
-			settings.setAutoUpdateCheckEnabled(rs.getBoolean(DatabaseColumns.AUTO_UPDATE_CHECK_ENABLED));
-			settings.setBackupReminderActivated(rs.getBoolean(DatabaseColumns.BACKUP_REMINDER_ACTIVATED));
-			settings.setLastBackupReminderDate(rs.getDate(DatabaseColumns.LAST_BACKUP_REMINDER_DATE).toLocalDate());
-			settings.setSearchItemsPerPage(rs.getInt(DatabaseColumns.SEARCH_ITEMS_PER_PAGE));
-
-			settings.setAutoBackupStrategy(rs.getInt(DatabaseColumns.AUTO_BACKUP_STRATEGY));
-			settings.setAutoBackupDays(rs.getInt(DatabaseColumns.AUTO_BACKUP_DAYS));
-			settings.setAutoBackupTime(rs.getInt(DatabaseColumns.AUTO_BACKUP_TIME));
-			settings.setAutoBackupFilesToKeep(rs.getInt(DatabaseColumns.AUTO_BACKUP_FILES_TO_KEEP));
-
-			settings.setAutoBackupGitUrl(rs.getString(DatabaseColumns.AUTO_BACKUP_GIT_URL));
-			settings.setAutoBackupGitBranchName(rs.getString(DatabaseColumns.AUTO_BACKUP_GIT_BRANCH_NAME));
-			settings.setAutoBackupGitUserName(rs.getString(DatabaseColumns.AUTO_BACKUP_GIT_USER_NAME));
-			settings.setAutoBackupGitToken(rs.getString(DatabaseColumns.AUTO_BACKUP_GIT_TOKEN));
-
-			settings.setInstalledVersionCode(rs.getInt(DatabaseColumns.INSTALLED_VERSION_CODE));
-			settings.setWhatsNewShownForCurrentVersion(rs.getBoolean(DatabaseColumns.WHATS_NEW_SHOWN_FOR_CURRENT_VERSION));
-			return settings;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TemplateGroupReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TemplateGroupReader.java
deleted file mode 100644
index 5fb1330cead6a532bd8aba9b1b123a720c95c63f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TemplateGroupReader.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup.DestinationTemplateGroup;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class TemplateGroupReader extends BaseReader<DestinationTemplateGroup>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String NAME = "NAME";
-		public static final String TYPE = "TYPE";
-	}
-
-	public TemplateGroupReader(DataSource primaryDataSource)
-	{
-		super(TableNames.TEMPLATE_GROUP, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationTemplateGroup> getRowMapper()
-	{
-		return new TemplateGroupRowMapper();
-	}
-
-	public static class TemplateGroupRowMapper implements RowMapper<DestinationTemplateGroup>
-	{
-		@Override
-		public DestinationTemplateGroup mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationTemplateGroup templateGroup = new DestinationTemplateGroup();
-			templateGroup.setID(rs.getInt(DatabaseColumns.ID));
-			templateGroup.setName(rs.getString(DatabaseColumns.NAME));
-			templateGroup.setType(rs.getInt(DatabaseColumns.TYPE));
-			return templateGroup;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TemplateReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TemplateReader.java
deleted file mode 100644
index f22ea8890d8a05cebd7f28265c91167dfeda8601..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TemplateReader.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.template.DestinationTemplate;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class TemplateReader extends BaseReader<DestinationTemplate>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String TEMPLATE_NAME = "TEMPLATE_NAME";
-		public static final String AMOUNT = "AMOUNT";
-		public static final String IS_EXPENDITURE = "IS_EXPENDITURE";
-		public static final String ACCOUNT_ID = "ACCOUNT_ID";
-		public static final String CATEGORY_ID = "CATEGORY_ID";
-		public static final String NAME = "NAME";
-		public static final String DESCRIPTION = "DESCRIPTION";
-		public static final String ICON_REFERENCE_ID = "ICON_REFERENCE_ID";
-		public static final String TRANSFER_ACCOUNT_ID = "TRANSFER_ACCOUNT_ID";
-		public static final String TEMPLATE_GROUP_ID = "TEMPLATE_GROUP_ID";
-	}
-
-	public TemplateReader(DataSource primaryDataSource)
-	{
-		super(TableNames.TEMPLATE, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationTemplate> getRowMapper()
-	{
-		return new TemplateRowMapper();
-	}
-
-	public static class TemplateRowMapper implements RowMapper<DestinationTemplate>
-	{
-		@Override
-		public DestinationTemplate mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationTemplate template = new DestinationTemplate();
-			template.setID(rs.getInt(DatabaseColumns.ID));
-			template.setTemplateName(rs.getString(DatabaseColumns.TEMPLATE_NAME));
-			template.setAmount(getIntOrNull(rs, DatabaseColumns.AMOUNT));
-			template.setIsExpenditure(rs.getBoolean(DatabaseColumns.IS_EXPENDITURE));
-			template.setAccountID(getIntOrNull(rs, DatabaseColumns.ACCOUNT_ID));
-			template.setCategoryID(getIntOrNull(rs, DatabaseColumns.CATEGORY_ID));
-			template.setName(rs.getString(DatabaseColumns.NAME));
-			template.setDescription(rs.getString(DatabaseColumns.DESCRIPTION));
-			template.setTransferAccountID(getIntOrNull(rs, DatabaseColumns.TRANSFER_ACCOUNT_ID));
-			template.setIconReferenceID(getIntOrNull(rs, DatabaseColumns.ICON_REFERENCE_ID));
-			template.setTemplateGroupID(getIntOrNull(rs, DatabaseColumns.TEMPLATE_GROUP_ID));
-			return template;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TransactionReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TransactionReader.java
deleted file mode 100644
index 6d1357927a9c7f2d199f5212f181d13d6cecb675..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/TransactionReader.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.transaction.DestinationTransaction;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class TransactionReader extends BaseReader<DestinationTransaction>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String AMOUNT = "AMOUNT";
-		public static final String IS_EXPENDITURE = "IS_EXPENDITURE";
-		public static final String DATE = "DATE";
-		public static final String ACCOUNT_ID = "ACCOUNT_ID";
-		public static final String CATEGORY_ID = "CATEGORY_ID";
-		public static final String NAME = "NAME";
-		public static final String DESCRIPTION = "DESCRIPTION";
-		public static final String REPEATING_OPTION_ID = "REPEATING_OPTION_ID";
-		public static final String TRANSFER_ACCOUNT_ID = "TRANSFER_ACCOUNT_ID";
-	}
-
-	public TransactionReader(DataSource primaryDataSource)
-	{
-		super(TableNames.TRANSACTION, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationTransaction> getRowMapper()
-	{
-		return new TransactionRowMapper();
-	}
-
-	public static class TransactionRowMapper implements RowMapper<DestinationTransaction>
-	{
-		@Override
-		public DestinationTransaction mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationTransaction transaction = new DestinationTransaction();
-			transaction.setID(rs.getInt(DatabaseColumns.ID));
-			transaction.setAmount(rs.getInt(DatabaseColumns.AMOUNT));
-			transaction.setIsExpenditure(rs.getBoolean(DatabaseColumns.IS_EXPENDITURE));
-			transaction.setDate(rs.getDate(DatabaseColumns.DATE).toLocalDate());
-			transaction.setAccountID(rs.getInt(DatabaseColumns.ACCOUNT_ID));
-			transaction.setCategoryID(rs.getInt(DatabaseColumns.CATEGORY_ID));
-			transaction.setName(rs.getString(DatabaseColumns.NAME));
-			transaction.setDescription(rs.getString(DatabaseColumns.DESCRIPTION));
-			transaction.setRepeatingOptionID(getIntOrNull(rs, DatabaseColumns.REPEATING_OPTION_ID));
-			transaction.setTransferAccountID(getIntOrNull(rs, DatabaseColumns.TRANSFER_ACCOUNT_ID));
-			return transaction;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/UserReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/UserReader.java
deleted file mode 100644
index f75ede45c1ac1a2cec189a6ed29ebc48ab10b08f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/UserReader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.user.DestinationUser;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class UserReader extends BaseReader<DestinationUser>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String NAME = "NAME";
-		public static final String PASSWORD = "PASSWORD";
-		public static final String SELECTED_ACCOUNT_ID = "SELECTED_ACCOUNT_ID";
-	}
-
-	public UserReader(DataSource primaryDataSource)
-	{
-		super(TableNames.USER_SOURCE, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationUser> getRowMapper()
-	{
-		return new UserRowMapper();
-	}
-
-	public static class UserRowMapper implements RowMapper<DestinationUser>
-	{
-		@Override
-		public DestinationUser mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationUser user = new DestinationUser();
-			user.setID(rs.getInt(DatabaseColumns.ID));
-			user.setName(rs.getString(DatabaseColumns.NAME));
-			user.setPassword(rs.getString(DatabaseColumns.PASSWORD));
-			user.setSelectedAccountID(rs.getInt(DatabaseColumns.SELECTED_ACCOUNT_ID));
-			return user;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/RepeatingOptionReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/RepeatingOptionReader.java
deleted file mode 100644
index 67f59cd551e933560006647930b427b955727bdc..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/RepeatingOptionReader.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.DestinationRepeatingOption;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingOptionReader extends BaseReader<DestinationRepeatingOption>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String START_DATE = "START_DATE";
-		public static final String END_OPTION_ID = "END_OPTION_ID";
-		public static final String MODIFIER_ID = "MODIFIER_ID";
-	}
-
-	public RepeatingOptionReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_OPTION, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingOption> getRowMapper()
-	{
-		return new RepeatingOptionRowMapper();
-	}
-
-	public static class RepeatingOptionRowMapper implements RowMapper<DestinationRepeatingOption>
-	{
-		@Override
-		public DestinationRepeatingOption mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingOption repeatingOption = new DestinationRepeatingOption();
-			repeatingOption.setID(rs.getInt(DatabaseColumns.ID));
-			repeatingOption.setStartDate(rs.getDate(DatabaseColumns.START_DATE).toLocalDate());
-			repeatingOption.setEndOptionID(rs.getInt(DatabaseColumns.END_OPTION_ID));
-			repeatingOption.setModifierID(rs.getInt(DatabaseColumns.MODIFIER_ID));
-			return repeatingOption;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndAfterXTimesReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndAfterXTimesReader.java
deleted file mode 100644
index b238431ee284bd58e6fa0cf8c8c0376128fc0578..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndAfterXTimesReader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndAfterXTimes;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingEndAfterXTimesReader extends BaseReader<DestinationRepeatingEndAfterXTimes>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String TIMES = "TIMES";
-	}
-
-	public RepeatingEndAfterXTimesReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_END_AFTER_X_TIMES, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingEndAfterXTimes> getRowMapper()
-	{
-		return new DestinationRepeatingEndAfterXTimesRowMapper();
-	}
-
-	public static class DestinationRepeatingEndAfterXTimesRowMapper implements RowMapper<DestinationRepeatingEndAfterXTimes>
-	{
-		@Override
-		public DestinationRepeatingEndAfterXTimes mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingEndAfterXTimes repeatingEndAfterXTimes = new DestinationRepeatingEndAfterXTimes();
-			repeatingEndAfterXTimes.setID(rs.getInt(DatabaseColumns.ID));
-			repeatingEndAfterXTimes.setTimes(rs.getInt(DatabaseColumns.TIMES));
-			return repeatingEndAfterXTimes;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndDateReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndDateReader.java
deleted file mode 100644
index eacf03128f77a892478a5bf39d62bda05811f59e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndDateReader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndDate;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingEndDateReader extends BaseReader<DestinationRepeatingEndDate>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String END_DATE = "END_DATE";
-	}
-
-	public RepeatingEndDateReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_END_DATE, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingEndDate> getRowMapper()
-	{
-		return new DestinationRepeatingEndDateRowMapper();
-	}
-
-	public static class DestinationRepeatingEndDateRowMapper implements RowMapper<DestinationRepeatingEndDate>
-	{
-		@Override
-		public DestinationRepeatingEndDate mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingEndDate repeatingEndDate = new DestinationRepeatingEndDate();
-			repeatingEndDate.setID(rs.getInt(DatabaseColumns.ID));
-			repeatingEndDate.setEndDate(rs.getDate(DatabaseColumns.END_DATE).toLocalDate());
-			return repeatingEndDate;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndNeverReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndNeverReader.java
deleted file mode 100644
index 1bdd766bb5642612493b3294b1c59e409f3bc206..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndNeverReader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndNever;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingEndNeverReader extends BaseReader<DestinationRepeatingEndNever>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-	}
-
-	public RepeatingEndNeverReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_END_NEVER, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingEndNever> getRowMapper()
-	{
-		return new DestinationRepeatingEndNeverRowMapper();
-	}
-
-	public static class DestinationRepeatingEndNeverRowMapper implements RowMapper<DestinationRepeatingEndNever>
-	{
-		@Override
-		public DestinationRepeatingEndNever mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingEndNever repeatingEndNever = new DestinationRepeatingEndNever();
-			repeatingEndNever.setID(rs.getInt(DatabaseColumns.ID));
-			return repeatingEndNever;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndReader.java
deleted file mode 100644
index d28c48b5e77ad4def545e3daea0e48f0efc98fb5..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/end/RepeatingEndReader.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.end;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEnd;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingEndReader extends BaseReader<DestinationRepeatingEnd>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String LOCALIZATION_KEY = "LOCALIZATION_KEY";
-		public static final String TYPE = "TYPE";
-	}
-
-	public RepeatingEndReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_END, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingEnd> getRowMapper()
-	{
-		return new RepeatingEndRowMapper();
-	}
-
-	public static class RepeatingEndRowMapper implements RowMapper<DestinationRepeatingEnd>
-	{
-		@Override
-		public DestinationRepeatingEnd mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingEnd repeatingEnd = new DestinationRepeatingEnd();
-			repeatingEnd.setID(rs.getInt(DatabaseColumns.ID));
-			repeatingEnd.setLocalizationKey(rs.getString(DatabaseColumns.LOCALIZATION_KEY));
-			repeatingEnd.setType(rs.getString(DatabaseColumns.TYPE));
-			return repeatingEnd;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierDaysReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierDaysReader.java
deleted file mode 100644
index da52633493fa2e5a6b4282610b7398ec66301592..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierDaysReader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierDays;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingModifierDaysReader extends BaseReader<DestinationRepeatingModifierDays>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-	}
-
-	public RepeatingModifierDaysReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_MODIFIER_DAYS, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingModifierDays> getRowMapper()
-	{
-		return new DestinationRepeatingModifierRowMapper();
-	}
-
-	public static class DestinationRepeatingModifierRowMapper implements RowMapper<DestinationRepeatingModifierDays>
-	{
-		@Override
-		public DestinationRepeatingModifierDays mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingModifierDays repeatingModifier = new DestinationRepeatingModifierDays();
-			repeatingModifier.setID(rs.getInt(DatabaseColumns.ID));
-			return repeatingModifier;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierMonthsReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierMonthsReader.java
deleted file mode 100644
index c45b5907bf4fbc82219c82f1cd0b90e5fd33a033..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierMonthsReader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierMonths;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingModifierMonthsReader extends BaseReader<DestinationRepeatingModifierMonths>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-	}
-
-	public RepeatingModifierMonthsReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_MODIFIER_MONTHS, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingModifierMonths> getRowMapper()
-	{
-		return new DestinationRepeatingModifierRowMapper();
-	}
-
-	public static class DestinationRepeatingModifierRowMapper implements RowMapper<DestinationRepeatingModifierMonths>
-	{
-		@Override
-		public DestinationRepeatingModifierMonths mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingModifierMonths repeatingModifier = new DestinationRepeatingModifierMonths();
-			repeatingModifier.setID(rs.getInt(DatabaseColumns.ID));
-			return repeatingModifier;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierReader.java
deleted file mode 100644
index d3416f7a2b5b4419526f59d31e416269c45b2caf..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierReader.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifier;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingModifierReader extends BaseReader<DestinationRepeatingModifier>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String LOCALIZATION_KEY = "LOCALIZATION_KEY";
-		public static final String TYPE = "TYPE";
-		public static final String QUANTITY = "QUANTITY";
-	}
-
-	public RepeatingModifierReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_MODIFIER, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingModifier> getRowMapper()
-	{
-		return new RepeatingModifierRowMapper();
-	}
-
-	public static class RepeatingModifierRowMapper implements RowMapper<DestinationRepeatingModifier>
-	{
-		@Override
-		public DestinationRepeatingModifier mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingModifier repeatingModifier = new DestinationRepeatingModifier();
-			repeatingModifier.setID(rs.getInt(DatabaseColumns.ID));
-			repeatingModifier.setLocalizationKey(rs.getString(DatabaseColumns.LOCALIZATION_KEY));
-			repeatingModifier.setType(rs.getString(DatabaseColumns.TYPE));
-			repeatingModifier.setQuantity(rs.getInt(DatabaseColumns.QUANTITY));
-			return repeatingModifier;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierYearsReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierYearsReader.java
deleted file mode 100644
index f7a81fe95706588dc36a7ae03e18d86e0470dc15..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/repeating/modifier/RepeatingModifierYearsReader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.repeating.modifier;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierYears;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class RepeatingModifierYearsReader extends BaseReader<DestinationRepeatingModifierYears>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-	}
-
-	public RepeatingModifierYearsReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPEATING_MODIFIER_YEARS, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationRepeatingModifierYears> getRowMapper()
-	{
-		return new DestinationRepeatingModifierRowMapper();
-	}
-
-	public static class DestinationRepeatingModifierRowMapper implements RowMapper<DestinationRepeatingModifierYears>
-	{
-		@Override
-		public DestinationRepeatingModifierYears mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationRepeatingModifierYears repeatingModifier = new DestinationRepeatingModifierYears();
-			repeatingModifier.setID(rs.getInt(DatabaseColumns.ID));
-			return repeatingModifier;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/report/ReportColumnReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/report/ReportColumnReader.java
deleted file mode 100644
index bfc7cf1ed241a9dc8bad73d9234134d9a5f62afe..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/report/ReportColumnReader.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.report;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportColumn;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class ReportColumnReader extends BaseReader<DestinationReportColumn>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String ACTIVATED = "ACTIVATED";
-		public static final String KEY = "KEY";
-		public static final String POSITION = "POSITION";
-	}
-
-	public ReportColumnReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPORT_COLUMN, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationReportColumn> getRowMapper()
-	{
-		return new ReportColumnRowMapper();
-	}
-
-	public static class ReportColumnRowMapper implements RowMapper<DestinationReportColumn>
-	{
-		@Override
-		public DestinationReportColumn mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationReportColumn column = new DestinationReportColumn();
-			column.setID(rs.getInt(DatabaseColumns.ID));
-			column.setActivated(rs.getBoolean(DatabaseColumns.ACTIVATED));
-			column.setLocalizationKey(rs.getString(DatabaseColumns.KEY));
-			column.setColumnPosition(rs.getInt(DatabaseColumns.POSITION));
-			return column;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/report/ReportSettingsReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/report/ReportSettingsReader.java
deleted file mode 100644
index ad2e9f9d4e4118ac1c4e366f4f2ffb64d2e39cdb..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/report/ReportSettingsReader.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.report;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportSettings;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class ReportSettingsReader extends BaseReader<DestinationReportSettings>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String DATE = "DATE";
-		public static final String INCLUDE_BUDGET = "INCLUDE_BUDGET";
-		public static final String INCLUDE_CATEGORY_BUDGETS = "INCLUDE_CATEGORY_BUDGETS";
-		public static final String SPLIT_TABLES = "SPLIT_TABLES";
-	}
-
-	public ReportSettingsReader(DataSource primaryDataSource)
-	{
-		super(TableNames.REPORT_SETTINGS, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationReportSettings> getRowMapper()
-	{
-		return new ReportSettingsRowMapper();
-	}
-
-	public static class ReportSettingsRowMapper implements RowMapper<DestinationReportSettings>
-	{
-		@Override
-		public DestinationReportSettings mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationReportSettings settings = new DestinationReportSettings();
-			settings.setID(1);
-			settings.setDate(rs.getDate(DatabaseColumns.DATE).toLocalDate());
-			settings.setIncludeBudget(rs.getBoolean(DatabaseColumns.INCLUDE_BUDGET));
-			settings.setIncludeCategoryBudgets(rs.getBoolean(DatabaseColumns.INCLUDE_CATEGORY_BUDGETS));
-			settings.setSplitTables(rs.getBoolean(DatabaseColumns.SPLIT_TABLES));
-			return settings;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TagReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TagReader.java
deleted file mode 100644
index eeb08d4969e510f149c4d19ffde3445f97db82f0..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TagReader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.tag;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.tag.DestinationTag;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class TagReader extends BaseReader<DestinationTag>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String NAME = "NAME";
-	}
-
-	public TagReader(DataSource primaryDataSource)
-	{
-		super(TableNames.TAG, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationTag> getRowMapper()
-	{
-		return new TagRowMapper();
-	}
-
-	public static class TagRowMapper implements RowMapper<DestinationTag>
-	{
-		@Override
-		public DestinationTag mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationTag tag = new DestinationTag();
-			tag.setID(rs.getInt(DatabaseColumns.ID));
-			tag.setName(rs.getString(DatabaseColumns.NAME));
-			return tag;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TemplateTagReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TemplateTagReader.java
deleted file mode 100644
index 0e1cfdc94d4ccd910edd1a81343dd0bc9f29fcff..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TemplateTagReader.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.tag;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.tag.DestinationTemplateTag;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class TemplateTagReader extends BaseReader<DestinationTemplateTag>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String TEMPLATE_ID = "TEMPLATE_ID";
-		public static final String TAGS_ID = "TAGS_ID";
-	}
-
-	public TemplateTagReader(DataSource primaryDataSource)
-	{
-		super(TableNames.TEMPLATE_TAGS, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationTemplateTag> getRowMapper()
-	{
-		return new TagRowMapper();
-	}
-
-	public static class TagRowMapper implements RowMapper<DestinationTemplateTag>
-	{
-		@Override
-		public DestinationTemplateTag mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationTemplateTag tag = new DestinationTemplateTag();
-			tag.setID(rowNum);
-			tag.setTemplateID(rs.getInt(DatabaseColumns.TEMPLATE_ID));
-			tag.setTagsID(rs.getInt(DatabaseColumns.TAGS_ID));
-			return tag;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TransactionTagReader.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TransactionTagReader.java
deleted file mode 100644
index 1d2596b04ae7d9dbcb52d717264d7491bd9ed6ef..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/steps/reader/tag/TransactionTagReader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-
-package de.deadlocker8.budgetmaster.databasemigrator.steps.reader.tag;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.tag.DestinationTransactionTag;
-import de.deadlocker8.budgetmaster.databasemigrator.steps.reader.BaseReader;
-import org.springframework.jdbc.core.RowMapper;
-
-import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-public class TransactionTagReader extends BaseReader<DestinationTransactionTag>
-{
-	private static class DatabaseColumns
-	{
-		public static final String ID = "ID";
-		public static final String TRANSACTION_ID = "TRANSACTION_ID";
-		public static final String TAGS_ID = "TAGS_ID";
-	}
-
-	public TransactionTagReader(DataSource primaryDataSource)
-	{
-		super(TableNames.TRANSACTION_TAGS, primaryDataSource);
-	}
-
-	@Override
-	protected RowMapper<DestinationTransactionTag> getRowMapper()
-	{
-		return new TagRowMapper();
-	}
-
-	public static class TagRowMapper implements RowMapper<DestinationTransactionTag>
-	{
-		@Override
-		public DestinationTransactionTag mapRow(ResultSet rs, int rowNum) throws SQLException
-		{
-			final DestinationTransactionTag tag = new DestinationTransactionTag();
-			tag.setID(rowNum);
-			tag.setTransactionID(rs.getInt(DatabaseColumns.TRANSACTION_ID));
-			tag.setTagsID(rs.getInt(DatabaseColumns.TAGS_ID));
-			return tag;
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/main/resources/application.properties b/BudgetMasterDatabaseMigrator/src/main/resources/application.properties
deleted file mode 100644
index 8c007825b0f4018c7e434218841579d072c3f88c..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/main/resources/application.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# commented lines should be passed by command line and are only retained as example
-#spring.datasource.jdbc-url=
-spring.datasource.username=sa
-spring.datasource.password=
-spring.datasource.driver-class-name=org.h2.Driver
-
-#spring.seconddatasource.jdbc-url=
-#spring.seconddatasource.username=
-#spring.seconddatasource.password=
-#spring.seconddatasource.driver-class-name=
-
-spring.jpa.database=default
-spring.jpa.show-sql=false
-spring.jpa.generate-ddl=true
-spring.jpa.hibernate.ddl-auto=update
-
-spring.batch.jdbc.initialize-schema=always
-spring.batch.job.enabled=false
-
-logging.level.root=INFO
-logging.level.de.deadlocker8=DEBUG
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateAccountsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateAccountsTest.java
deleted file mode 100644
index 23dfd7ef49c61ec5dbb73acfdccadec364dc18c0..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateAccountsTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.account.DestinationAccount;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.account.DestinationAccountIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateAccountsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateAccountsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:accounts.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationAccountIntegerRepository accountRepository;
-
-	@Test
-	void test_stepMigrateAccounts()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.ACCOUNTS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(7);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(8);
-
-		final DestinationAccount accountPlaceholder = new DestinationAccount(1, "Placeholder", false, false, 0, 1, 0);
-		final DestinationAccount accountDefault = new DestinationAccount(2, "Default Account", true, true, 0, 2, 1);
-		final DestinationAccount accountWithBuiltinIcon = new DestinationAccount(3, "Account with builtin icon", false, false, 0, 5, 1);
-		final DestinationAccount accountWithoutIcon = new DestinationAccount(4, "Account without icon", false, false, 0, 6, 1);
-		final DestinationAccount accountWithImage = new DestinationAccount(5, "Account with image", false, false, 0, 7, 1);
-		final DestinationAccount accountReadOnly = new DestinationAccount(6, "Read-only account", false, false, 1, 8, 1);
-		final DestinationAccount accountHidden = new DestinationAccount(7, "Hidden account", false, false, 2, 9, 1);
-
-
-		final List<DestinationAccount> accounts = accountRepository.findAll();
-		assertThat(accounts)
-				.hasSize(7)
-				.containsExactly(accountPlaceholder, accountDefault, accountWithBuiltinIcon, accountWithoutIcon, accountWithImage, accountReadOnly, accountHidden);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateCategoriesTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateCategoriesTest.java
deleted file mode 100644
index 4c1e665cc7b7c0aa508d46cf39462fa3ba7c752b..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateCategoriesTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategory;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategoryIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateCategoriesTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateCategoriesTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:categories.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationCategoryIntegerRepository categoryRepository;
-
-	@Test
-	void test_stepMigraCategories()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.CATEGORIES, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(5);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(6);
-
-		final DestinationCategory categoryNoCategory = new DestinationCategory(1, "No Category", "#FFFFFF", 0, 3);
-		final DestinationCategory categoryRest = new DestinationCategory(2, "Rest", "#FFFF00", 1, 4);
-		final DestinationCategory categoryWithIcon = new DestinationCategory(3, "Awesome Category", "#ff9500", 2, 5);
-		final DestinationCategory categoryWithBuiltinIcon = new DestinationCategory(4, "Category with built in icon", "#4cd964", 2, 6);
-		final DestinationCategory categoryWithoutIcon = new DestinationCategory(5, "Category without icon", "#a90329", 2, 7);
-
-		final List<DestinationCategory> categories = categoryRepository.findAll();
-		assertThat(categories)
-				.hasSize(5)
-				.containsExactly(categoryNoCategory, categoryRest, categoryWithIcon, categoryWithBuiltinIcon, categoryWithoutIcon);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateChartsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateChartsTest.java
deleted file mode 100644
index 4facccd62b34fadcbce2fd5c59bc8542e7cba6c5..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateChartsTest.java
+++ /dev/null
@@ -1,219 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.chart.DestinationChart;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.chart.DestinationChartIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateChartsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateChartsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:charts.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationChartIntegerRepository chartRepository;
-
-	private static final String DEFAULT_CHART_SCRIPT = """
-			/* This list will be dynamically filled with all the transactions between
-			 * the start and and date you select on the "Show Chart" page
-			 * and filtered according to your specified filter.
-			 * An example entry for this list and tutorial about how to create custom charts ca be found in the BudgetMaster wiki:
-			 * https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts
-			 */
-			var transactionData = [];
-
-			// Note: All variables starting with "localized" are only available inside default charts.
-
-			// group transactions by date
-			var groups = transactionData.reverse().reduce((groups, transaction) =>
-			{
-			    var date = transaction.date;
-			    if(!groups[date])
-			    {
-			        groups[date] = [];
-			    }
-			    groups[date].push(transaction);
-			    return groups;
-			}, {});
-
-			var dates = Object.keys(groups);
-			var previousSum = 0;
-			var sums = [];
-
-			// calculate sum for each date
-			for(var key in groups)
-			{
-			    if(groups.hasOwnProperty(key))
-			    {
-			        var group = groups[key];
-
-			        // extract all amount values
-			        var amounts = group.map(transaction => transaction.amount);
-
-			        // sum up all amounts
-			        var currentSum = amounts.reduce((a, b) => a + b, 0);
-
-			        // add sum of current date to previous sum
-			        currentSum = previousSum + currentSum;
-
-			        // save current sum for next loop cycle
-			        previousSum = currentSum;
-
-			        // add sum to array
-			        sums.push(currentSum / 100);
-			    }
-			}
-
-			// Prepare your chart settings here (mandatory)
-			var plotlyData = [
-			    {
-			        x: dates,
-			        y: sums,
-			        type: 'line'
-			    }
-			];
-
-			// Add your Plotly layout settings here (optional)
-			var plotlyLayout = {
-			    title: {
-			        text: localizedTitle,
-			    },
-			    yaxis: {
-			        title: localizedData['axisY'] + localizedCurrency,
-			        rangemode: 'tozero',
-			        tickformat: '.2f',
-			        showline: true
-			    },
-			    xaxis: {
-			        tickformat: '%d.%m.%y'
-			    }
-			};
-
-			// Add your Plotly configuration settings here (optional)
-			var plotlyConfig = {
-			    showSendToCloud: false,
-			    displaylogo: false,
-			    showLink: false,
-			    responsive: true,
-			    displayModeBar: true,
-			    toImageButtonOptions: {
-			        format: 'png',
-			        filename: 'BudgetMaster_chart_export',
-			        height: 1080,
-			        width: 1920,
-			    }
-			};
-
-			// Don't touch this line
-			Plotly.newPlot("containerID", plotlyData, plotlyLayout, plotlyConfig);""";
-
-	private static final String CUSTOM_CHART_SCRIPT = """
-			/* This list will be dynamically filled with all the transactions between
-			* the start and and date you select on the "Show Chart" page
-			* and filtered according to your specified filter.
-			* An example entry for this list and tutorial about how to create custom charts ca be found in the BudgetMaster wiki:
-			* https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts
-			*/
-			var transactionData = [];
-
-			// Prepare your chart settings here (mandatory)
-			var plotlyData = [{
-			    x: [],
-			    y: [],
-			    type: 'bar'
-			}];
-
-			// Add your Plotly layout settings here (optional)
-			var plotlyLayout = {};
-
-			// Add your Plotly configuration settings here (optional)
-			var plotlyConfig = {
-			    showSendToCloud: false,
-			    displaylogo: false,
-			    showLink: false,
-			    responsive: true
-			};
-
-			console.log("my custom chart");
-
-			// Don't touch this line
-			Plotly.newPlot("containerID", plotlyData, plotlyLayout, plotlyConfig);""";
-
-
-	@Test
-	void test_stepMigrateCharts()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.CHARTS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(13);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(14);
-
-		final List<DestinationChart> charts = chartRepository.findAll();
-		assertThat(charts).hasSize(13);
-
-		final DestinationChart migratedDefaultChart = charts.get(0);
-		assertThat(migratedDefaultChart)
-				.hasFieldOrPropertyWithValue("ID", 1)
-				.hasFieldOrPropertyWithValue("name", "charts.default.accountSumPerDay")
-				.hasFieldOrPropertyWithValue("type", 0)
-				.hasFieldOrPropertyWithValue("version", 11)
-				.hasFieldOrPropertyWithValue("displayType", 2)
-				.hasFieldOrPropertyWithValue("groupType", 0)
-				.hasFieldOrPropertyWithValue("previewImageFileName", "accountSumPerDay.png");
-
-		assertThat(migratedDefaultChart.getScript())
-				.isEqualTo(DEFAULT_CHART_SCRIPT.replace("\n", "\r\n"));
-
-		final DestinationChart migratedCustomChart = charts.get(12);
-		assertThat(migratedCustomChart)
-				.hasFieldOrPropertyWithValue("ID", 13)
-				.hasFieldOrPropertyWithValue("name", "Custom chart")
-				.hasFieldOrPropertyWithValue("type", 1)
-				.hasFieldOrPropertyWithValue("version", 0)
-				.hasFieldOrPropertyWithValue("displayType", 3)
-				.hasFieldOrPropertyWithValue("groupType", 0)
-				.hasFieldOrPropertyWithValue("previewImageFileName", null);
-
-		assertThat(migratedCustomChart.getScript())
-				.isEqualTo(CUSTOM_CHART_SCRIPT.replace("\n", "\r\n"));
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateDefaultDatabaseTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateDefaultDatabaseTest.java
deleted file mode 100644
index 2bb7b4c266958494831082e1314ea52c6feba786..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateDefaultDatabaseTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateDefaultDatabaseTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateDefaultDatabaseTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:default_database_after_first_start.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Test
-	void test_jobMigrate() throws Exception
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchJob(DEFAULT_JOB_PARAMETERS);
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-	}
-
-	@Test
-	void test_stepMigrateImages_noImages()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.IMAGES, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isZero();
-		assertThat(stepExecution.getCommitCount()).isOne();
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateHintsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateHintsTest.java
deleted file mode 100644
index b81669be0514e01030ab248d00524576f451e874..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateHintsTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.hint.DestinationHint;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.hint.DestinationHintIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateHintsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateHintsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:default_database_after_first_start.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationHintIntegerRepository hintRepository;
-
-	@Test
-	void test_stepMigrateHints()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.HINTS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(7);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(8);
-
-		final DestinationHint hint = new DestinationHint(1, "hint.first.use.teaser", false);
-
-		final List<DestinationHint> hints = hintRepository.findAll();
-		assertThat(hints)
-				.hasSize(7)
-				.contains(hint);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateIconsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateIconsTest.java
deleted file mode 100644
index 6e05b213ac675e1ada13f98bbe55df65a9da03c2..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateIconsTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.icon.DestinationIcon;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.icon.DestinationIconIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateIconsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateIconsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:categories.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationIconIntegerRepository iconRepository;
-
-	@Test
-	void test_stepMigrateImages()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.ICONS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(7);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(8);
-
-		final DestinationIcon iconAllAccounts = new DestinationIcon(1, null, "fas fa-landmark", null);
-		final DestinationIcon iconEmpty1 = new DestinationIcon(2, null, null, null);
-		final DestinationIcon iconEmpty2 = new DestinationIcon(3, null, null, null);
-		final DestinationIcon iconEmpty3 = new DestinationIcon(4, null, null, null);
-		final DestinationIcon iconWithImage = new DestinationIcon(5, 1, null, null);
-		final DestinationIcon iconBuiltin = new DestinationIcon(6, null, "fas fa-apple-alt", null);
-		final DestinationIcon iconFontColor = new DestinationIcon(7, null, null, "#000000ff");
-
-		final List<DestinationIcon> icons = iconRepository.findAll();
-		assertThat(icons)
-				.hasSize(7)
-				.containsExactly(iconAllAccounts, iconEmpty1, iconEmpty2, iconEmpty3, iconWithImage, iconBuiltin, iconFontColor);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateImagesTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateImagesTest.java
deleted file mode 100644
index 0ec2d42c105f396ede387f45e78de27f0886772a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateImagesTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.image.DestinationImage;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.image.DestinationImageIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateImagesTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateImagesTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:categories.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationImageIntegerRepository imageRepository;
-
-	@Test
-	void test_stepMigrateImages() throws IOException, URISyntaxException
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.IMAGES, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isOne();
-		assertThat(stepExecution.getCommitCount()).isEqualTo(2);
-
-		final byte[] imageBytes = Files.readAllBytes(Paths.get(this.getClass().getClassLoader().getResource("BudgetMaster.svg").toURI()));
-		final DestinationImage expectedImage = new DestinationImage(1, imageBytes, "BudgetMaster.svg", 2);
-
-		final List<DestinationImage> images = imageRepository.findAll();
-		assertThat(images)
-				.hasSize(1)
-				.containsExactly(expectedImage);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndAfterXTimesTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndAfterXTimesTest.java
deleted file mode 100644
index 6437590683753685cc11d098e275428a6b1c4810..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndAfterXTimesTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndAfterXTimes;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndAfterXTimesIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingEndAfterXTimesTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingEndAfterXTimesTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingEndAfterXTimesIntegerRepository repeatingEndAfterXTimesRepository;
-
-	@Test
-	void test_stepMigrateRepeatingEndAfterXTimes()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_END_AFTER_X_TIMES, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(4);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(5);
-
-		final DestinationRepeatingEndAfterXTimes endAfterXTimes = new DestinationRepeatingEndAfterXTimes(6, 2);
-
-		final List<DestinationRepeatingEndAfterXTimes> repeatingEndAfterXTimes = repeatingEndAfterXTimesRepository.findAll();
-		assertThat(repeatingEndAfterXTimes)
-				.hasSize(4)
-				.contains(endAfterXTimes);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndDateTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndDateTest.java
deleted file mode 100644
index 8afa57b01082589b10c177dffd8049664dd84f49..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndDateTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndDate;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndDateIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingEndDateTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingEndDateTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingEndDateIntegerRepository repeatingEndDateRepository;
-
-	@Test
-	void test_stepMigrateRepeatingEndDates()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_END_DATE, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(1);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(2);
-
-		final DestinationRepeatingEndDate endDate = new DestinationRepeatingEndDate(4, LocalDate.of(2022, 3, 31));
-
-		final List<DestinationRepeatingEndDate> repeatingEndDates = repeatingEndDateRepository.findAll();
-		assertThat(repeatingEndDates)
-				.hasSize(1)
-				.containsExactly(endDate);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndNeverTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndNeverTest.java
deleted file mode 100644
index 0cf717c774cb9f23f0a0d2578967fb6821a7dd8e..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndNeverTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndNever;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndNeverIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingEndNeverTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingEndNeverTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingEndNeverIntegerRepository repeatingEndNeverRepository;
-
-	@Test
-	void test_stepMigrateRepeatingEndNever()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_END_NEVER, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(1);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(2);
-
-		final DestinationRepeatingEndNever endNever = new DestinationRepeatingEndNever(5);
-
-		final List<DestinationRepeatingEndNever> repeatingEndNevers = repeatingEndNeverRepository.findAll();
-		assertThat(repeatingEndNevers)
-				.hasSize(1)
-				.containsExactly(endNever);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndsTest.java
deleted file mode 100644
index cc0de3d56c2aaba4870fb8af7be1fef333053b7f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingEndsTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEnd;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end.DestinationRepeatingEndIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingEndsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingEndsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingEndIntegerRepository repeatingEndRepository;
-
-	@Test
-	void test_stepMigrateRepeatingEnds()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_ENDS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(6);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(7);
-
-		final DestinationRepeatingEnd repeatingEndDate = new DestinationRepeatingEnd(4, "repeating.end.key.date", "RepeatingEndDate");
-		final DestinationRepeatingEnd repeatingEndNever = new DestinationRepeatingEnd(5, "repeating.end.key.never", "RepeatingEndNever");
-		final DestinationRepeatingEnd repeatingEndAfterXTimes = new DestinationRepeatingEnd(6, "repeating.end.key.afterXTimes", "RepeatingEndAfterXTimes");
-
-		final List<DestinationRepeatingEnd> repeatingEnds = repeatingEndRepository.findAll();
-		assertThat(repeatingEnds)
-				.hasSize(6)
-				.contains(repeatingEndDate, repeatingEndNever, repeatingEndAfterXTimes);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierDaysTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierDaysTest.java
deleted file mode 100644
index daeafd0fa5c6b332fead34b770ef89470bb32910..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierDaysTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierDays;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierDaysIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingModifierDaysTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingModifierDaysTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingModifierDaysIntegerRepository modifierDaysRepository;
-
-	@Test
-	void test_stepMigrateRepeatingModifierDays()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_MODIFIER_DAYS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(2);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(3);
-
-		final DestinationRepeatingModifierDays modifierDays = new DestinationRepeatingModifierDays(7);
-
-		final List<DestinationRepeatingModifierDays> repeatingModifierDays = modifierDaysRepository.findAll();
-		assertThat(repeatingModifierDays)
-				.hasSize(2)
-				.contains(modifierDays);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierMonthsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierMonthsTest.java
deleted file mode 100644
index b231b73f5a7f03df11f243ab769526682e0a68a6..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierMonthsTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierMonths;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierMonthsIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingModifierMonthsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingModifierMonthsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingModifierMonthsIntegerRepository modifierMonthsRepository;
-
-	@Test
-	void test_stepMigrateRepeatingModifierMonths()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_MODIFIER_MONTHS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(3);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(4);
-
-		final DestinationRepeatingModifierMonths modifierMonths = new DestinationRepeatingModifierMonths(4);
-
-		final List<DestinationRepeatingModifierMonths> repeatingModifierMonths = modifierMonthsRepository.findAll();
-		assertThat(repeatingModifierMonths)
-				.hasSize(3)
-				.contains(modifierMonths);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierYearsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierYearsTest.java
deleted file mode 100644
index 8989c464ab2f7fe7db3377f09d46941e7bbd0d83..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifierYearsTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierYears;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierYearsIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingModifierYearsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingModifierYearsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingModifierYearsIntegerRepository modifierYearsRepository;
-
-	@Test
-	void test_stepMigrateRepeatingModifierYears()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_MODIFIER_YEARS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(1);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(2);
-
-		final DestinationRepeatingModifierYears modifierYears = new DestinationRepeatingModifierYears(8);
-
-		final List<DestinationRepeatingModifierYears> repeatingModifierYears = modifierYearsRepository.findAll();
-		assertThat(repeatingModifierYears)
-				.hasSize(1)
-				.contains(modifierYears);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifiersTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifiersTest.java
deleted file mode 100644
index 496455039a63d24164ae3eb5edc4b1282691488d..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingModifiersTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifier;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier.DestinationRepeatingModifierIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingModifiersTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingModifiersTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingModifierIntegerRepository repeatingModifierRepository;
-
-	@Test
-	void test_stepMigrateRepeatingModifiers()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_MODIFIERS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(6);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(7);
-
-		final DestinationRepeatingModifier modifierDays = new DestinationRepeatingModifier(7, "repeating.modifier.days", "RepeatingModifierDays", 2);
-		final DestinationRepeatingModifier modifierMonths = new DestinationRepeatingModifier(4, "repeating.modifier.months", "RepeatingModifierMonths", 1);
-		final DestinationRepeatingModifier modifierYears = new DestinationRepeatingModifier(8, "repeating.modifier.years", "RepeatingModifierYears", 1);
-
-		final List<DestinationRepeatingModifier> repeatingModifiers = repeatingModifierRepository.findAll();
-		assertThat(repeatingModifiers)
-				.hasSize(6)
-				.contains(modifierDays, modifierMonths, modifierYears);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingOptionsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingOptionsTest.java
deleted file mode 100644
index 93a7a6edc6a7de93e92b5c810c794edb63ed4e14..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateRepeatingOptionsTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.DestinationRepeatingOption;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.DestinationRepeatingOptionIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateRepeatingOptionsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateRepeatingOptionsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationRepeatingOptionIntegerRepository repeatingOptionRepository;
-
-	@Test
-	void test_stepMigrateRepeatingOptions()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPEATING_OPTIONS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(6);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(7);
-
-		final DestinationRepeatingOption repeatingOption = new DestinationRepeatingOption(4, LocalDate.of(2022, 3, 23), 4, 4);
-
-		final List<DestinationRepeatingOption> destinationRepeatingOptions = repeatingOptionRepository.findAll();
-		assertThat(destinationRepeatingOptions)
-				.hasSize(6)
-				.contains(repeatingOption);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateReportColumnsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateReportColumnsTest.java
deleted file mode 100644
index 695ec39588e9cc8db27da31b12b663c12e552209..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateReportColumnsTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportColumn;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportColumnIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateReportColumnsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateReportColumnsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:default_database_after_first_start.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationReportColumnIntegerRepository columnRepository;
-
-	@Test
-	void test_stepMigrateReportColumns()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPORT_COLUMNS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(11);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(12);
-
-		final DestinationReportColumn column1 = new DestinationReportColumn(1, true, "report.position", 0, 1);
-		final DestinationReportColumn column2 = new DestinationReportColumn(2, true, "report.date", 1, 1);
-		final DestinationReportColumn column3 = new DestinationReportColumn(3, true, "report.repeating", 2, 1);
-		final DestinationReportColumn column4 = new DestinationReportColumn(4, true, "report.transfer", 3, 1);
-		final DestinationReportColumn column5 = new DestinationReportColumn(5, true, "report.category", 4, 1);
-		final DestinationReportColumn column6 = new DestinationReportColumn(6, true, "report.name", 5, 1);
-		final DestinationReportColumn column7 = new DestinationReportColumn(7, true, "report.description", 6, 1);
-		final DestinationReportColumn column8 = new DestinationReportColumn(8, true, "report.tags", 7, 1);
-		final DestinationReportColumn column9 = new DestinationReportColumn(9, true, "report.account", 8, 1);
-		final DestinationReportColumn column10 = new DestinationReportColumn(10, true, "report.rating", 9, 1);
-		final DestinationReportColumn column11 = new DestinationReportColumn(11, true, "report.amount", 10, 1);
-
-		final List<DestinationReportColumn> reportColumns = columnRepository.findAll();
-		assertThat(reportColumns)
-				.hasSize(11)
-				.containsExactly(column1, column2, column3, column4, column5, column6, column7, column8, column9, column10, column11);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateReportSettingsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateReportSettingsTest.java
deleted file mode 100644
index dc7493ece8e1aec47b4c96ab6fa2d64b5cb56d5a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateReportSettingsTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportSettings;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.report.DestinationReportSettingsIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateReportSettingsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateReportSettingsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:default_database_after_first_start.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationReportSettingsIntegerRepository settingsRepository;
-
-	@Test
-	void test_stepMigrateReportSettings()
-	{
-		assertThat(settingsRepository.findAll()).isEmpty();
-
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.REPORT_SETTINGS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(1);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(2);
-
-		final DestinationReportSettings settings = new DestinationReportSettings(1, LocalDate.of(2022, 3, 15), true, true, true);
-
-		final List<DestinationReportSettings> reportSettings = settingsRepository.findAll();
-		assertThat(reportSettings)
-				.hasSize(1)
-				.containsExactly(settings);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateSettingsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateSettingsTest.java
deleted file mode 100644
index 7eac72ef406f4c07cb57a8ade68f51e66017c6ca..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateSettingsTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.settings.DestinationSettings;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.settings.DestinationSettingsIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateSettingsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateSettingsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:default_database_after_first_start.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationSettingsIntegerRepository settingsRepository;
-
-	@Test
-	void test_stepMigrateSettings()
-	{
-		assertThat(settingsRepository.findAll()).isEmpty();
-
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.SETTINGS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(1);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(2);
-
-		final DestinationSettings settings = new DestinationSettings(1, "€", false, 1, false, true, true, true, LocalDate.of(2022, 3, 15), 10, 0, 1, 0, 3, "", "", "", "", 35, false, false);
-
-		final List<DestinationSettings> settingsItems = settingsRepository.findAll();
-		assertThat(settingsItems)
-				.hasSize(1)
-				.contains(settings);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTagsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTagsTest.java
deleted file mode 100644
index 222ce47161b2c16a88a306a06db90f192867053f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTagsTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.tag.*;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateTagsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateTagsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:tags.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationTagIntegerRepository tagRepository;
-
-	@Autowired
-	private DestinationTemplateTagIntegerRepository templateTagRepository;
-
-	@Autowired
-	private DestinationTransactionTagIntegerRepository transactionTagRepository;
-
-	@Test
-	void test_stepMigrateTags()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.TAGS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(2);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(3);
-
-		final DestinationTag tag1 = new DestinationTag(1, "My Awesome Tag");
-		final DestinationTag tag2 = new DestinationTag(2, "ABC");
-
-		final List<DestinationTag> tags = tagRepository.findAll();
-		assertThat(tags)
-				.hasSize(2)
-				.containsExactly(tag1, tag2);
-	}
-
-	@Test
-	void test_stepMigrateTemplateTags()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.TEMPLATE_TAGS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(2);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(3);
-
-		final DestinationTemplateTag tag1 = new DestinationTemplateTag(1, 1);
-		final DestinationTemplateTag tag2 = new DestinationTemplateTag(1,2);
-
-		final List<DestinationTemplateTag> tags = templateTagRepository.findAll();
-		assertThat(tags)
-				.hasSize(2)
-				.containsExactly(tag1, tag2);
-	}
-
-	@Test
-	void test_stepMigrateTransactionTags()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.TRANSACTION_TAGS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(3);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(4);
-
-		final DestinationTransactionTag tag1 = new DestinationTransactionTag(1, 1);
-		final DestinationTransactionTag tag2 = new DestinationTransactionTag(2,1);
-		final DestinationTransactionTag tag3 = new DestinationTransactionTag(2,2);
-
-		final List<DestinationTransactionTag> tags = transactionTagRepository.findAll();
-		assertThat(tags)
-				.hasSize(3)
-				.containsExactly(tag1, tag2, tag3);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTemplateGroupsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTemplateGroupsTest.java
deleted file mode 100644
index b9482d7989288d18950355d82f919df473e8f0a7..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTemplateGroupsTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup.DestinationTemplateGroup;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup.DestinationTemplateGroupIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateTemplateGroupsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateTemplateGroupsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:templates.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationTemplateGroupIntegerRepository templateGroupRepository;
-
-	@Test
-	void test_stepMigrateTemplateGroups()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.TEMPLATE_GROUPS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(2);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(3);
-
-		final DestinationTemplateGroup templateGroupDefault = new DestinationTemplateGroup(1, "Not grouped", 0);
-		final DestinationTemplateGroup templateGroup = new DestinationTemplateGroup(2, "Template Group", 1);
-
-		final List<DestinationTemplateGroup> templateGroups = templateGroupRepository.findAll();
-		assertThat(templateGroups)
-				.hasSize(2)
-				.contains(templateGroupDefault, templateGroup);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTemplatesTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTemplatesTest.java
deleted file mode 100644
index b4e4923cc4243a1d6a2df1bcb9f01b3d1dee696a..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTemplatesTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.template.DestinationTemplate;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.template.DestinationTemplateIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateTemplatesTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateTemplatesTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:templates.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationTemplateIntegerRepository templateRepository;
-
-	@Test
-	void test_stepMigrateTemplates()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.TEMPLATES, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(3);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(4);
-
-		final DestinationTemplate templateNormal = new DestinationTemplate(1, "Template normal", null, true, null, 1, "", "", 5, null, 1);
-		final DestinationTemplate templateTransfer = new DestinationTemplate(2, "Template transfer", null, true, 2, 1, "", "", 7, 3, 1);
-		final DestinationTemplate templateWithGroup = new DestinationTemplate(3, "Template with group", 1200, false, null, 1, "", "", 8, null, 2);
-
-		final List<DestinationTemplate> templates = templateRepository.findAll();
-		assertThat(templates)
-				.hasSize(3)
-				.contains(templateNormal, templateTransfer, templateWithGroup);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTransactionsTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTransactionsTest.java
deleted file mode 100644
index 095327a19a520fee168a37c69296deaa52d3b248..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateTransactionsTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.transaction.DestinationTransaction;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.transaction.DestinationTransactionIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateTransactionsTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateTransactionsTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:transactions.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationTransactionIntegerRepository transactionRepository;
-
-	@Test
-	void test_stepMigrateTransactions()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.TRANSACTIONS, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(12);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(13);
-
-		final DestinationTransaction transactionNormal = new DestinationTransaction(1, -1500, true, LocalDate.of(2022, 3, 23), 2, 3, "Normal transaction", "", null, null);
-		final DestinationTransaction transactionRepeating = new DestinationTransaction(5, -100, true, LocalDate.of(2022, 3, 23), 2, 1, "Repeating month end date", "", 4, null);
-		final DestinationTransaction transactionTransfer = new DestinationTransaction(12, -1000, true, LocalDate.of(2022, 3, 27), 2, 1, "Transfer", "", null, 3);
-		final DestinationTransaction transactionTransferRepeating = new DestinationTransaction(13, -200, true, LocalDate.of(2022, 3, 27), 2, 1, "Repeating Transfer", "", 9, 3);
-
-		final List<DestinationTransaction> transactions = transactionRepository.findAll();
-		assertThat(transactions)
-				.hasSize(12)
-				.contains(transactionNormal, transactionRepeating, transactionTransfer, transactionTransferRepeating);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateUsersTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateUsersTest.java
deleted file mode 100644
index 06b9f5cd7a1702f2fe9ccedc0de5d3808c28b95f..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigrateUsersTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.user.DestinationUser;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.user.DestinationUserIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(MigrateUsersTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class MigrateUsersTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:default_database_after_first_start.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationUserIntegerRepository userRepository;
-
-	@Test
-	void test_stepMigrateUsers()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.USER, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(1);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(2);
-
-		final DestinationUser user = new DestinationUser(1, "Default", "$2a$10$dbMjXS1WOp40fpbIa4uyV./JnMsw3tQBNmTqhhgRPm.I3C1HnQLSS", 2);
-
-		final List<DestinationUser> users = userRepository.findAll();
-		assertThat(users)
-				.hasSize(1)
-				.contains(user);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigratorTestBase.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigratorTestBase.java
deleted file mode 100644
index f5cd1d8007f9a1dff2dc34595b3ec71cd252d5de..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/MigratorTestBase.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeAll;
-import org.springframework.batch.core.JobParameters;
-import org.springframework.batch.core.JobParametersBuilder;
-import org.springframework.batch.test.JobLauncherTestUtils;
-import org.springframework.batch.test.JobRepositoryTestUtils;
-import org.springframework.batch.test.context.SpringBatchTest;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
-import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.orm.jpa.JpaTransactionManager;
-import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.DynamicPropertyRegistry;
-import org.springframework.test.context.DynamicPropertySource;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.testcontainers.containers.PostgreSQLContainer;
-import org.testcontainers.junit.jupiter.Container;
-import org.testcontainers.junit.jupiter.Testcontainers;
-
-import javax.persistence.EntityManagerFactory;
-import javax.sql.DataSource;
-
-
-@SpringBatchTest
-@SpringBootTest
-@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
-@Testcontainers
-@ContextConfiguration(classes = {BatchConfiguration.class})
-@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
-@EnableJpaRepositories(
-		entityManagerFactoryRef = "secondaryEntityManagerFactory",
-		transactionManagerRef = "secondaryTransactionManager",
-		basePackages = {"de.deadlocker8.budgetmaster.databasemigrator.destination"}
-)
-@Import(MigratorTestBase.DestinationTestDatabaseConfiguration.class)
-public abstract class MigratorTestBase
-{
-	protected static final JobParameters DEFAULT_JOB_PARAMETERS = new JobParametersBuilder().toJobParameters();
-
-	@Autowired
-	protected JobLauncherTestUtils jobLauncherTestUtils;
-
-	@Autowired
-	protected JobRepositoryTestUtils jobRepositoryTestUtils;
-
-	@AfterEach
-	public void afterEach()
-	{
-		jobRepositoryTestUtils.removeJobExecutions();
-	}
-
-	@Container
-	static PostgreSQLContainer<?> postgresDB = new PostgreSQLContainer<>("postgres:14.5")
-			.withDatabaseName("budgetmaster-tests-db")
-			.withUsername("budgetmaster")
-			.withPassword("BudgetMaster");
-
-	@DynamicPropertySource
-	static void properties(DynamicPropertyRegistry registry)
-	{
-		registry.add("spring.seconddatasource.url", postgresDB::getJdbcUrl);
-		registry.add("spring.seconddatasource.username", postgresDB::getUsername);
-		registry.add("spring.seconddatasource.password", postgresDB::getPassword);
-	}
-
-	@BeforeAll
-	public static void beforeAll()
-	{
-		DatabaseMigratorMain.databaseType = DatabaseType.POSTGRESQL;
-	}
-
-	@TestConfiguration
-	static class DestinationTestDatabaseConfiguration
-	{
-		@Primary
-		@Bean(name = "primaryEntityManagerFactory")
-		public LocalContainerEntityManagerFactoryBean primaryEntityManagerFactory(EntityManagerFactoryBuilder builder,
-																				  @Qualifier("primaryDataSource") DataSource primaryDataSource)
-		{
-			return builder
-					.dataSource(primaryDataSource)
-					.packages("de.deadlocker8.budgetmaster.databasemigrator.source")
-					.build();
-		}
-
-		@Bean(name = "primaryTransactionManager")
-		public PlatformTransactionManager primaryTransactionManager(
-				@Qualifier("primaryEntityManagerFactory") EntityManagerFactory primaryEntityManagerFactory)
-		{
-			return new JpaTransactionManager(primaryEntityManagerFactory);
-		}
-
-		@Bean(name = "secondaryDataSource")
-		public DataSource secondaryDataSource()
-		{
-			return DataSourceBuilder.create().username(postgresDB.getUsername()).password(postgresDB.getPassword())
-					.url(postgresDB.getJdbcUrl()).driverClassName(postgresDB.getDriverClassName()).build();
-		}
-
-		@Bean(name = "secondaryEntityManagerFactory")
-		public LocalContainerEntityManagerFactoryBean secondaryEntityManagerFactory(EntityManagerFactoryBuilder builder,
-																					@Qualifier("secondaryDataSource") DataSource secondaryDataSource)
-		{
-			return builder
-					.dataSource(secondaryDataSource)
-					.packages("de.deadlocker8.budgetmaster.databasemigrator.destination")
-					.build();
-		}
-
-		@Bean(name = "secondaryTransactionManager")
-		public PlatformTransactionManager secondaryTransactionManager(
-				@Qualifier("secondaryEntityManagerFactory") EntityManagerFactory secondaryEntityManagerFactory)
-		{
-			return new JpaTransactionManager(secondaryEntityManagerFactory);
-		}
-	}
-}
diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/UpdateSequencesTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/UpdateSequencesTest.java
deleted file mode 100644
index 30c69187e73778208237433f4af51ff498e1bfd3..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/UpdateSequencesTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.deadlocker8.budgetmaster.databasemigrator;
-
-import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategory;
-import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategoryIntegerRepository;
-import org.junit.jupiter.api.Test;
-import org.springframework.batch.core.ExitStatus;
-import org.springframework.batch.core.JobExecution;
-import org.springframework.batch.core.StepExecution;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.Resource;
-
-import javax.sql.DataSource;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@Import(UpdateSequencesTest.TestDatabaseConfiguration.class)
-@EnableAutoConfiguration
-class UpdateSequencesTest extends MigratorTestBase
-{
-	@TestConfiguration
-	static class TestDatabaseConfiguration
-	{
-		@Value("classpath:categories.mv.db")
-		private Resource databaseResource;
-
-		@Bean(name = "primaryDataSource")
-		@Primary
-		public DataSource dataSource() throws IOException
-		{
-			final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", "");
-			String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE";
-			return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build();
-		}
-	}
-
-	@Autowired
-	private DestinationCategoryIntegerRepository categoryRepository;
-
-	@Test
-	void test_updateSequences()
-	{
-		final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.CATEGORIES, DEFAULT_JOB_PARAMETERS);
-		final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions());
-
-		assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED);
-
-		assertThat(stepExecutions).hasSize(1);
-		final StepExecution stepExecution = stepExecutions.get(0);
-		assertThat(stepExecution.getReadCount()).isEqualTo(5);
-		assertThat(stepExecution.getCommitCount()).isEqualTo(6);
-
-		final List<DestinationCategory> categoriesOrderedById = categoryRepository.findAllByOrderByIDDesc();
-		final DestinationCategory savedCategory = categoryRepository.save(new DestinationCategory(null, "New One", "#ffffff", 0, null));
-		assertThat(savedCategory.getID()).isEqualTo(categoriesOrderedById.get(0).getID() + 1);
-
-		final DestinationCategory savedCategory2 = categoryRepository.save(new DestinationCategory(null, "New Two", "#ffffff", 0, null));
-		assertThat(savedCategory2.getID()).isEqualTo(categoriesOrderedById.get(0).getID() + 2);
-	}
-}
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/BudgetMaster.svg b/BudgetMasterDatabaseMigrator/src/test/resources/BudgetMaster.svg
deleted file mode 100644
index 1f64835cc770dd272eba7a47e4081e36b79de854..0000000000000000000000000000000000000000
--- a/BudgetMasterDatabaseMigrator/src/test/resources/BudgetMaster.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 1218 1218" width="1218pt" height="1218pt"><defs><clipPath id="_clipPath_rWtj0rtuYbDYO4GkwsTvP2oNwd4oCylR"><rect width="1218" height="1218"/></clipPath></defs><g clip-path="url(#_clipPath_rWtj0rtuYbDYO4GkwsTvP2oNwd4oCylR)"><path d="M 245.75 80 L 972.25 80 C 999.294 80 1021.25 101.956 1021.25 129 L 1021.25 1165 C 1021.25 1192.044 999.294 1214 972.25 1214 L 245.75 1214 C 218.706 1214 196.75 1192.044 196.75 1165 L 196.75 129 C 196.75 101.956 218.706 80 245.75 80 Z" style="stroke:none;fill:#2E79B9;stroke-miterlimit:10;"/><rect x="270" y="168" width="678" height="958" transform="matrix(1,0,0,1,0,0)" fill="rgb(255,255,255)"/><path d=" M 378.5 197 L 839.5 197 Q 820.716 81.878 661.5 57 C 656.929 56.286 660.595 7 608.5 7 C 556.143 7 557.406 56.676 555.5 57 Q 378.643 87.071 378.5 197 Z " fill="rgb(105,105,105)"/><g><rect x="569.086" y="122.453" width="402.735" height="935.051" transform="matrix(0.839,-0.544,0.544,0.839,-197.013,514.592)" fill="rgb(139,175,90)"/><rect x="628.931" y="197.261" width="283.83" height="785.261" transform="matrix(0.839,-0.544,0.544,0.839,-196.902,514.791)" fill="rgb(179,226,116)"/><path d=" M 694.002 635.907 C 637.162 548.381 624.763 455.405 666.332 428.41 C 707.9 401.416 787.795 450.56 844.635 538.086 C 901.475 625.612 913.874 718.588 872.306 745.583 C 830.737 772.577 750.842 723.433 694.002 635.907 Z " fill="rgb(139,175,90)"/><rect x="568.628" y="473.172" width="405.742" height="234.553" transform="matrix(0.839,-0.544,0.544,0.839,-197.1,515.237)" fill="rgb(207,207,207)"/></g><g><circle vector-effect="non-scaling-stroke" cx="557" cy="929" r="103" fill="rgb(255,215,11)"/><circle vector-effect="non-scaling-stroke" cx="333" cy="760.0000000000001" r="103" fill="rgb(255,215,11)"/></g></g></svg>
\ No newline at end of file
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/accounts.mv.db b/BudgetMasterDatabaseMigrator/src/test/resources/accounts.mv.db
deleted file mode 100644
index 8b6e4cd28d0589aeb2683b8f76702b99a3739dd6..0000000000000000000000000000000000000000
Binary files a/BudgetMasterDatabaseMigrator/src/test/resources/accounts.mv.db and /dev/null differ
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/categories.mv.db b/BudgetMasterDatabaseMigrator/src/test/resources/categories.mv.db
deleted file mode 100644
index 969f8d0520b74646047b99076f15a476a3ef1a3a..0000000000000000000000000000000000000000
Binary files a/BudgetMasterDatabaseMigrator/src/test/resources/categories.mv.db and /dev/null differ
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/charts.mv.db b/BudgetMasterDatabaseMigrator/src/test/resources/charts.mv.db
deleted file mode 100644
index 46bbc4fd95ad405feae04633be9dbca7b9a3c368..0000000000000000000000000000000000000000
Binary files a/BudgetMasterDatabaseMigrator/src/test/resources/charts.mv.db and /dev/null differ
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/default_database_after_first_start.mv.db b/BudgetMasterDatabaseMigrator/src/test/resources/default_database_after_first_start.mv.db
deleted file mode 100644
index 36ca61ae144e56adb8d0d616095a9c96a576d8df..0000000000000000000000000000000000000000
Binary files a/BudgetMasterDatabaseMigrator/src/test/resources/default_database_after_first_start.mv.db and /dev/null differ
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/tags.mv.db b/BudgetMasterDatabaseMigrator/src/test/resources/tags.mv.db
deleted file mode 100644
index 4da999fd57030cf2e32dc930e307362256c0b149..0000000000000000000000000000000000000000
Binary files a/BudgetMasterDatabaseMigrator/src/test/resources/tags.mv.db and /dev/null differ
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/templates.mv.db b/BudgetMasterDatabaseMigrator/src/test/resources/templates.mv.db
deleted file mode 100644
index e24aa14aa03cf56d6d7c6f7e56a2ad85f57b0eae..0000000000000000000000000000000000000000
Binary files a/BudgetMasterDatabaseMigrator/src/test/resources/templates.mv.db and /dev/null differ
diff --git a/BudgetMasterDatabaseMigrator/src/test/resources/transactions.mv.db b/BudgetMasterDatabaseMigrator/src/test/resources/transactions.mv.db
deleted file mode 100644
index 93435af3eeceb9d2c7e495edc68a75992fc210c3..0000000000000000000000000000000000000000
Binary files a/BudgetMasterDatabaseMigrator/src/test/resources/transactions.mv.db and /dev/null differ
diff --git a/pom.xml b/pom.xml
index 8d4674193773f75bd77952e2f480b658e554c039..b4c1b5f293d09ca5e19a16a955c2b19313e38c2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,6 @@
     <name>BudgetMaster</name>
 
     <modules>
-        <module>BudgetMasterDatabaseMigrator</module>
         <module>BudgetMasterServer</module>
     </modules>