diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
index 68ff40b..a029fc0 100644
--- a/.idea/dataSources.xml
+++ b/.idea/dataSources.xml
@@ -8,5 +8,20 @@
jdbc:sqlite:$PROJECT_DIR$/api/app/database.db
$ProjectFileDir$
+
+ sqlite.xerial
+ true
+ org.sqlite.JDBC
+ jdbc:sqlite:$PROJECT_DIR$/kmm.db
+ $ProjectFileDir$
+
+
+ file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.45.1/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar
+
+
+ file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.45.1/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar
+
+
+
\ No newline at end of file
diff --git a/kmm.db b/kmm.db
new file mode 100644
index 0000000..c3eb36f
Binary files /dev/null and b/kmm.db differ
diff --git a/kmm.sql b/kmm.sql
new file mode 100644
index 0000000..d327238
--- /dev/null
+++ b/kmm.sql
@@ -0,0 +1,267 @@
+CREATE TABLE kmmAccounts (
+id varchar(32) NOT NULL,
+institutionId varchar(32),
+parentId varchar(32),
+lastReconciled datetime,
+lastModified datetime,
+openingDate date,
+accountNumber mediumtext,
+accountType varchar(16) NOT NULL,
+accountTypeString mediumtext,
+isStockAccount char(1),
+accountName mediumtext,
+description mediumtext,
+currencyId varchar(32),
+balance mediumtext,
+balanceFormatted mediumtext,
+transactionCount bigint unsigned,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmAccountsPayeeIdentifier (
+accountId varchar(32) NOT NULL,
+userOrder smallint unsigned NOT NULL,
+identifierId varchar(32) NOT NULL,
+PRIMARY KEY (accountId,userOrder)
+);
+
+CREATE TABLE kmmBudgetConfig (
+id varchar(32) NOT NULL,
+name text NOT NULL,
+start date NOT NULL,
+XML longtext,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmCostCenter (
+id varchar(32) NOT NULL,
+name text NOT NULL,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmCurrencies (
+ISOcode char(3) NOT NULL,
+name text NOT NULL,
+type smallint unsigned,
+typeString mediumtext,
+symbol1 smallint unsigned,
+symbol2 smallint unsigned,
+symbol3 smallint unsigned,
+symbolString varchar(255),
+smallestCashFraction varchar(24),
+smallestAccountFraction varchar(24),
+pricePrecision smallint unsigned NOT NULL DEFAULT 4,
+PRIMARY KEY (ISOcode)
+);
+
+CREATE TABLE kmmFileInfo (
+version varchar(16),
+created date,
+lastModified date,
+baseCurrency char(3),
+institutions bigint unsigned,
+accounts bigint unsigned,
+payees bigint unsigned,
+tags bigint unsigned,
+transactions bigint unsigned,
+splits bigint unsigned,
+securities bigint unsigned,
+prices bigint unsigned,
+currencies bigint unsigned,
+schedules bigint unsigned,
+reports bigint unsigned,
+kvps bigint unsigned,
+dateRangeStart date,
+dateRangeEnd date,
+hiInstitutionId bigint unsigned,
+hiPayeeId bigint unsigned,
+hiTagId bigint unsigned,
+hiAccountId bigint unsigned,
+hiTransactionId bigint unsigned,
+hiScheduleId bigint unsigned,
+hiSecurityId bigint unsigned,
+hiReportId bigint unsigned,
+encryptData varchar(255),
+updateInProgress char(1),
+budgets bigint unsigned,
+hiBudgetId bigint unsigned,
+hiOnlineJobId bigint unsigned,
+hiPayeeIdentifierId bigint unsigned,
+logonUser varchar(255),
+logonAt datetime,
+fixLevel int unsigned
+);
+
+CREATE TABLE kmmInstitutions (
+id varchar(32) NOT NULL,
+name text NOT NULL,
+manager mediumtext,
+routingCode mediumtext,
+addressStreet mediumtext,
+addressCity mediumtext,
+addressZipcode mediumtext,
+telephone mediumtext,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmKeyValuePairs (
+kvpType varchar(16) NOT NULL,
+kvpId varchar(32),
+kvpKey varchar(255) NOT NULL,
+kvpData mediumtext
+);
+CREATE INDEX kmmKeyValuePairs_type_id_idx ON kmmKeyValuePairs (kvpType,kvpId);
+
+CREATE TABLE kmmOnlineJobs (
+id varchar(32) NOT NULL,
+type varchar(255) NOT NULL,
+jobSend datetime,
+bankAnswerDate datetime,
+state varchar(15) NOT NULL,
+locked char(1) NOT NULL,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmPayeeIdentifier (
+id varchar(32) NOT NULL,
+type varchar(255),
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmPayees (
+id varchar(32) NOT NULL,
+name mediumtext,
+reference mediumtext,
+email mediumtext,
+addressStreet mediumtext,
+addressCity mediumtext,
+addressZipcode mediumtext,
+addressState mediumtext,
+telephone mediumtext,
+notes longtext,
+defaultAccountId varchar(32),
+matchData tinyint unsigned,
+matchIgnoreCase char(1),
+matchKeys mediumtext,
+idPattern mediumtext,
+urlTemplate mediumtext,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmPayeesPayeeIdentifier (
+payeeId varchar(32) NOT NULL,
+userOrder smallint unsigned NOT NULL,
+identifierId varchar(32) NOT NULL,
+PRIMARY KEY (payeeId,userOrder)
+);
+
+CREATE TABLE kmmPluginInfo (
+iid varchar(255) NOT NULL,
+versionMajor tinyint unsigned NOT NULL,
+versionMinor tinyint unsigned,
+uninstallQuery longtext,
+PRIMARY KEY (iid)
+);
+
+CREATE TABLE kmmPrices (
+fromId varchar(32) NOT NULL,
+toId varchar(32) NOT NULL,
+priceDate date NOT NULL,
+price text NOT NULL,
+priceFormatted mediumtext,
+priceSource mediumtext,
+PRIMARY KEY (fromId,toId,priceDate)
+);
+
+CREATE TABLE kmmReportConfig (name varchar(255) NOT NULL,
+XML longtext,
+id varchar(32) NOT NULL,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmSchedulePaymentHistory (schedId varchar(32) NOT NULL,
+payDate date NOT NULL,
+PRIMARY KEY (schedId,payDate)
+);
+
+CREATE TABLE kmmSchedules (id varchar(32) NOT NULL,
+name text NOT NULL,
+type tinyint unsigned NOT NULL,
+typeString mediumtext,
+occurence smallint unsigned NOT NULL,
+occurenceMultiplier smallint unsigned NOT NULL,
+occurenceString mediumtext,
+paymentType tinyint unsigned,
+paymentTypeString longtext,
+startDate date NOT NULL,
+endDate date,
+fixed char(1) NOT NULL,
+lastDayInMonth char(1) NOT NULL DEFAULT 'N',
+autoEnter char(1) NOT NULL,
+lastPayment date,
+nextPaymentDue date,
+weekendOption tinyint unsigned NOT NULL,
+weekendOptionString mediumtext,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmSecurities (id varchar(32) NOT NULL,
+name text NOT NULL,
+symbol mediumtext,
+type smallint unsigned NOT NULL,
+typeString mediumtext,
+smallestAccountFraction varchar(24),
+pricePrecision smallint unsigned NOT NULL DEFAULT 4,
+tradingMarket mediumtext,
+tradingCurrency char(3),
+roundingMethod smallint unsigned NOT NULL DEFAULT 7,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmSplits (
+transactionId varchar(32) NOT NULL,
+txType char(1),
+splitId smallint unsigned NOT NULL,
+payeeId varchar(32),
+reconcileDate datetime,
+action varchar(16),
+reconcileFlag char(1),
+value text NOT NULL,
+valueFormatted text,
+shares text NOT NULL,
+sharesFormatted mediumtext,
+price text,
+priceFormatted mediumtext,
+memo mediumtext,
+accountId varchar(32) NOT NULL,
+costCenterId varchar(32),
+checkNumber varchar(32),
+postDate datetime,
+bankId mediumtext,
+PRIMARY KEY (transactionId, splitId)
+);
+CREATE INDEX kmmSplits_kmmSplitsaccount_type_idx ON kmmSplits (accountId,txType);
+
+CREATE TABLE kmmTagSplits (transactionId varchar(32) NOT NULL,
+tagId varchar(32) NOT NULL,
+splitId smallint unsigned NOT NULL,
+PRIMARY KEY (transactionId,tagId,splitId)
+);
+
+CREATE TABLE kmmTags (id varchar(32) NOT NULL,
+name mediumtext,
+closed char(1),
+notes longtext,
+tagColor mediumtext,
+PRIMARY KEY (id)
+);
+
+CREATE TABLE kmmTransactions (id varchar(32) NOT NULL,
+txType char(1),
+postDate datetime,
+memo mediumtext,
+entryDate datetime,
+currencyId char(3),
+bankId mediumtext,
+PRIMARY KEY (id)
+);