Revert "FINERACT-1932: Fineract modularization - fineract-savings"

This reverts commit b9314d0b1e8cc213433e8869ee0fd625ddef0250.
diff --git a/build.gradle b/build.gradle
index a1d1b41..9b1a179 100644
--- a/build.gradle
+++ b/build.gradle
@@ -31,7 +31,6 @@
                 'fineract-provider',
                 'fineract-investor',
                 'fineract-loan',
-                'fineract-savings',
                 'integration-tests',
                 'twofactor-tests',
                 'oauth2-tests',
@@ -47,8 +46,7 @@
                 'fineract-core',
                 'fineract-provider',
                 'fineract-investor',
-                'fineract-loan',
-                'fineract-savings'
+                'fineract-loan'
             ].contains(it.name)
         }
         npmRepository = 'https://npm.pkg.github.com'
diff --git a/fineract-savings/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java b/fineract-core/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
rename to fineract-core/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java
rename to fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java
diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle
index 8589a9c..60a5e7c 100644
--- a/fineract-provider/dependencies.gradle
+++ b/fineract-provider/dependencies.gradle
@@ -21,7 +21,6 @@
     implementation(project(path: ':fineract-core'))
     implementation(project(path: ':fineract-investor'))
     implementation(project(path: ':fineract-loan'))
-    implementation(project(path: ':fineract-savings'))
     providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
 
     // Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java
index 4822098..64d45ef 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java
@@ -21,18 +21,41 @@
 import jakarta.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import lombok.Getter;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import org.apache.fineract.infrastructure.core.service.MathUtil;
+import org.apache.fineract.portfolio.note.domain.Note;
 import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 import org.apache.fineract.portfolio.savings.service.SavingsEnumerations;
 
-@Getter
 public class InteropTransactionData extends CommandProcessingResult {
 
+    // private final SavingsAccountTransactionEnumData transactionType;
+    // private final PaymentDetailData paymentDetailData;
+    // private final BigDecimal outstandingChargeAmount;
+    // private final boolean reversed;
+    // private final AccountTransferData transfer;
+    // private final LocalDate submittedOnDate;
+    // private final boolean interestedPostedAsOn;
+    // private final String submittedByUsername;
+    // // templates
+    // final Collection<PaymentTypeData> paymentTypeOptions;
+    // //import fields
+    // private Long paymentTypeId;
+    // private String checkNumber;
+    // private String routingCode;
+    // private String receiptNumber;
+    // private String bankNumber;
+
+    // private String transactionReference;
+    // private String statementReference;
+    // private CreditDebitType creditDebit;
+    // private TransactionStatus status;
+    // private String transactionInformation;
+    // private String addressLine;
+
     @NotNull
     private final String accountId;
     @NotNull
@@ -52,7 +75,7 @@
     @NotNull
     private final LocalDate valueDateTime;
 
-    private String note;
+    private final String note;
 
     public InteropTransactionData(Long entityId, String accountId, String transactionId, SavingsAccountTransactionType transactionType,
             BigDecimal amount, BigDecimal chargeAmount, String currency, BigDecimal accountBalance, LocalDate bookingDateTime,
@@ -94,14 +117,33 @@
         LocalDate valueDateTime = endOfBalanceLocalDate == null ? bookingDateTime : endOfBalanceLocalDate;
 
         StringBuilder sb = new StringBuilder();
-        sb.append(SavingsEnumerations.transactionType(transactionType).getValue());
+        int currLength = 0;
+        for (Note note : transaction.getNotes()) {
+            String s = note.getNote();
+            if (s == null) {
+                continue;
+            }
+
+            int availableLength = 500 - currLength;
+            if (availableLength <= 1) {
+                break;
+            }
+
+            if (currLength > 0) {
+                sb.append(' ');
+                availableLength--;
+            }
+            if (s.length() > availableLength) {
+                s = s.substring(availableLength);
+            }
+            sb.append(s);
+            currLength = sb.length();
+        }
+        if (currLength == 0) {
+            sb.append(SavingsEnumerations.transactionType(transactionType).getValue());
+        }
 
         return new InteropTransactionData(savingsAccount.getId(), savingsAccount.getExternalId().getValue(), transactionId, transactionType,
                 amount, chargeAmount, currency, runningBalance, bookingDateTime, valueDateTime, sb.toString());
     }
-
-    public void updateNote(String note) {
-        this.note = note;
-    }
-
 }
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java
index f3d13e4..34c25ca 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java
@@ -22,15 +22,11 @@
 import java.util.List;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
-import lombok.Getter;
-import lombok.Setter;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 
-@Getter
-@Setter
 public class InteropTransactionsData extends CommandProcessingResult {
 
     List<InteropTransactionData> transactions;
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java
rename to fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java
index 0947168..2cae4bb 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java
@@ -64,7 +64,6 @@
 import org.apache.fineract.interoperation.data.InteropQuoteRequestData;
 import org.apache.fineract.interoperation.data.InteropQuoteResponseData;
 import org.apache.fineract.interoperation.data.InteropRequestData;
-import org.apache.fineract.interoperation.data.InteropTransactionData;
 import org.apache.fineract.interoperation.data.InteropTransactionRequestData;
 import org.apache.fineract.interoperation.data.InteropTransactionRequestResponseData;
 import org.apache.fineract.interoperation.data.InteropTransactionsData;
@@ -219,27 +218,7 @@
             return (transactionsTo == null || transactionsTo.compareTo(transactionDate) > 0) && (transactionsFrom == null
                     || transactionsFrom.compareTo(transactionDate.withHour(23).withMinute(59).withSecond(59)) <= 0);
         };
-        InteropTransactionsData interopTransactionsData = InteropTransactionsData.build(savingsAccount, transFilter);
-        for (InteropTransactionData interopTransactionData : interopTransactionsData.getTransactions()) {
-            final List<Note> transactionNotes = noteRepository
-                    .findBySavingsTransactionId(Long.valueOf(interopTransactionData.getTransactionId()));
-            StringBuilder sb = new StringBuilder();
-            for (final Note note : transactionNotes) {
-                String s = note.getNote();
-                if (s == null) {
-                    continue;
-                }
-                sb.append(s + " ");
-            }
-            if (sb.toString().length() > 0) {
-                String text = interopTransactionData.getNote() + " " + sb.toString();
-                if (text.length() > 500) {
-                    text = text.substring(0, 500);
-                }
-                interopTransactionData.updateNote(text);
-            }
-        }
-        return interopTransactionsData;
+        return InteropTransactionsData.build(savingsAccount, transFilter);
     }
 
     @NotNull
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java
index 26f0f11..2264b9c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java
@@ -39,7 +39,6 @@
 import org.apache.fineract.organisation.holiday.domain.Holiday;
 import org.apache.fineract.organisation.holiday.domain.HolidayRepository;
 import org.apache.fineract.organisation.holiday.domain.HolidayStatusType;
-import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
 import org.apache.fineract.organisation.staff.domain.Staff;
 import org.apache.fineract.organisation.staff.domain.StaffRepository;
 import org.apache.fineract.organisation.staff.exception.StaffNotFoundException;
@@ -82,6 +81,7 @@
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRelatedDetail;
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
+import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException;
 import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException;
 import org.apache.fineract.portfolio.rate.domain.Rate;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
index 1b2f76a..5e96c43 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
@@ -60,7 +60,6 @@
 import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
 import org.apache.fineract.organisation.monetary.domain.Money;
-import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.account.PortfolioAccountType;
 import org.apache.fineract.portfolio.account.data.AccountTransferDTO;
 import org.apache.fineract.portfolio.account.data.PortfolioAccountData;
@@ -126,6 +125,7 @@
 import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.ScheduledDateGenerator;
 import org.apache.fineract.portfolio.loanaccount.serialization.LoanChargeApiJsonValidator;
 import org.apache.fineract.portfolio.loanproduct.data.LoanOverdueDTO;
+import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException;
 import org.apache.fineract.portfolio.note.domain.Note;
 import org.apache.fineract.portfolio.note.domain.NoteRepository;
diff --git a/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/exception/InvalidCurrencyException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/exception/InvalidCurrencyException.java
similarity index 95%
rename from fineract-core/src/main/java/org/apache/fineract/organisation/monetary/exception/InvalidCurrencyException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/exception/InvalidCurrencyException.java
index 40aa519..3a965bb 100644
--- a/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/exception/InvalidCurrencyException.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/exception/InvalidCurrencyException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.organisation.monetary.exception;
+package org.apache.fineract.portfolio.loanproduct.exception;
 
 import org.apache.fineract.infrastructure.core.exception.AbstractPlatformDomainRuleException;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
index 26f0f67..a47fe5e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
@@ -40,7 +40,6 @@
 import org.apache.fineract.infrastructure.event.business.domain.loan.product.LoanProductCreateBusinessEvent;
 import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
-import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.charge.domain.Charge;
 import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
 import org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket;
@@ -58,6 +57,7 @@
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule;
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
+import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.loanproduct.exception.LoanProductCannotBeModifiedDueToNonClosedLoansException;
 import org.apache.fineract.portfolio.loanproduct.exception.LoanProductDateException;
 import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java
index c57b20e..f609eea 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java
@@ -26,8 +26,6 @@
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 
 public interface NoteRepository extends JpaRepository<Note, Long>, JpaSpecificationExecutor<Note> {
 
@@ -48,8 +46,4 @@
     List<Note> findBySavingsAccount(SavingsAccount savingAccount);
 
     Note findBySavingsAccountAndId(SavingsAccount savingAccount, Long id);
-
-    @Query("select note from Note note where note.savingsTransaction.id = :savingsTransactionId")
-    List<Note> findBySavingsTransactionId(@Param("savingsTransactionId") Long savingsTransactionId);
-
 }
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
similarity index 92%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
index cb132e4..78a5f2f 100644
--- a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
@@ -20,10 +20,12 @@
 
 import static org.apache.fineract.infrastructure.core.service.DateUtils.getSystemZoneId;
 
+import jakarta.persistence.CascadeType;
 import jakarta.persistence.Column;
 import jakarta.persistence.Entity;
 import jakarta.persistence.JoinColumn;
 import jakarta.persistence.ManyToOne;
+import jakarta.persistence.OneToOne;
 import jakarta.persistence.Table;
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -33,6 +35,7 @@
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
 import org.apache.fineract.organisation.monetary.domain.Money;
+import org.apache.fineract.portfolio.loanaccount.guarantor.domain.GuarantorFundingTransaction;
 import org.apache.fineract.portfolio.savings.DepositAccountOnHoldTransactionType;
 
 @Entity
@@ -59,6 +62,9 @@
     @Column(name = "created_date", nullable = true)
     private LocalDateTime createdDateToRemove;
 
+    @OneToOne(cascade = CascadeType.ALL, mappedBy = "depositAccountOnHoldTransaction", optional = true, orphanRemoval = true)
+    private GuarantorFundingTransaction guarantorFundingTransaction;
+
     protected DepositAccountOnHoldTransaction() {}
 
     private DepositAccountOnHoldTransaction(final SavingsAccount savingsAccount, final BigDecimal amount,
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
similarity index 99%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
index caf6dd0..3cef741 100644
--- a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
@@ -68,12 +68,12 @@
 import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
 import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
-import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.charge.domain.Charge;
 import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
 import org.apache.fineract.portfolio.charge.exception.ChargeCannotBeAppliedToException;
 import org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart;
 import org.apache.fineract.portfolio.interestratechart.service.InterestRateChartAssembler;
+import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.savings.PreClosurePenalInterestOnType;
 import org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType;
 import org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType;
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
similarity index 98%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
index 2cd1c7d..6910fad 100644
--- a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
@@ -46,6 +46,7 @@
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
 import org.apache.fineract.organisation.monetary.domain.Money;
 import org.apache.fineract.organisation.office.domain.Office;
+import org.apache.fineract.portfolio.note.domain.Note;
 import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
 import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
 import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionEnumData;
@@ -126,6 +127,10 @@
     @Column(name = "reason_for_block", nullable = true)
     private String reasonForBlock;
 
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
+    @JoinColumn(name = "savings_account_transaction_id", referencedColumnName = "id")
+    private List<Note> notes = new ArrayList<>();
+
     @Column(name = "is_reversal", nullable = false)
     private boolean reversalTransaction;
 
@@ -423,6 +428,10 @@
         return this.taxDetails;
     }
 
+    public List<Note> getNotes() {
+        return notes;
+    }
+
     public Integer getTypeOf() {
         return this.typeOf;
     }
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
similarity index 99%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
index c47cb76..a9f3862 100644
--- a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
@@ -59,10 +59,10 @@
 import org.apache.fineract.accounting.common.AccountingRuleType;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
-import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.charge.domain.Charge;
 import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
 import org.apache.fineract.portfolio.charge.exception.ChargeCannotBeAppliedToException;
+import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType;
 import org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType;
 import org.apache.fineract.portfolio.savings.SavingsInterestCalculationType;
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java
diff --git a/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java
similarity index 100%
rename from fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java
index 60f1416..8b17c96 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java
@@ -39,7 +39,7 @@
 import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
 import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData;
 import org.apache.fineract.infrastructure.dataqueries.service.GenericDataService;
-import org.apache.fineract.infrastructure.dataqueries.service.ReadWriteNonCoreDataService;
+import org.apache.fineract.infrastructure.dataqueries.service.ReadWriteNonCoreDataServiceImpl;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
 import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionData;
@@ -66,7 +66,7 @@
     private final PlatformSecurityContext context;
     private final GenericDataService genericDataService;
     private final DatabaseSpecificSQLGenerator sqlGenerator;
-    private final ReadWriteNonCoreDataService datatableService;
+    private final ReadWriteNonCoreDataServiceImpl datatableService;
     private final DataTableValidator dataTableValidator;
     private final JdbcTemplate jdbcTemplate;
 
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
index dc64831..4f457a1 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
@@ -46,7 +46,6 @@
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
 import org.apache.fineract.organisation.monetary.domain.Money;
-import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.accounts.constants.ShareAccountApiConstants;
 import org.apache.fineract.portfolio.charge.domain.Charge;
 import org.apache.fineract.portfolio.charge.domain.ChargeCalculationType;
@@ -55,6 +54,7 @@
 import org.apache.fineract.portfolio.client.domain.Client;
 import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
 import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
+import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.savings.DepositAccountType;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountRepositoryWrapper;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java
index fa7bc44..64e2b6c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java
@@ -44,10 +44,10 @@
 import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
-import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.charge.domain.Charge;
 import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
 import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
+import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
 import org.apache.fineract.portfolio.shareproducts.constants.ShareProductApiConstants;
 import org.apache.fineract.portfolio.shareproducts.data.ShareProductMarketPriceData;
 import org.apache.fineract.portfolio.shareproducts.domain.ShareProduct;
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java
diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java
rename to fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java
diff --git a/fineract-provider/src/main/resources/jpa/persistence.xml b/fineract-provider/src/main/resources/jpa/persistence.xml
index 9633ded..b1fba72 100644
--- a/fineract-provider/src/main/resources/jpa/persistence.xml
+++ b/fineract-provider/src/main/resources/jpa/persistence.xml
@@ -114,24 +114,6 @@
         <class>org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter</class>
         <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule</class>
         <class>org.apache.fineract.portfolio.loanaccount.domain.LoanPaymentAllocationRule</class>
-        <!-- Fineract Savings module -->
-        <class>org.apache.fineract.interoperation.domain.InteropIdentifier</class>
-        <class>org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives</class>
-        <class>org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart</class>
-        <class>org.apache.fineract.portfolio.interestratechart.domain.InterestRateChartSlab</class>
-        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart</class>
-        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChartSlabs</class>
-        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentives</class>
-        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountOnHoldTransaction</class>
-        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure</class>
-        <class>org.apache.fineract.portfolio.savings.domain.GroupSavingsIndividualMonitoring</class>
-        <class>org.apache.fineract.portfolio.savings.domain.SavingsProduct</class>
-        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccount</class>
-        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge</class>
-        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy</class>
-        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction</class>
-        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionTaxDetails</class>
-        <class>org.apache.fineract.portfolio.savings.domain.SavingsOfficerAssignmentHistory</class>
         <exclude-unlisted-classes>false</exclude-unlisted-classes>
         <properties>
             <property name="eclipselink.weaving" value="static" />
diff --git a/fineract-savings/build.gradle b/fineract-savings/build.gradle
deleted file mode 100644
index df6fa6f..0000000
--- a/fineract-savings/build.gradle
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-description = 'Fineract Savings'
-
-apply plugin: 'java'
-apply plugin: 'eclipse'
-
-compileJava.doLast {
-    def mainSS = sourceSets.main
-    def source = mainSS.java.classesDirectory.get()
-    copy {
-        from file("src/main/resources/jpa/savings/persistence.xml")
-        into "${source}/META-INF/"
-    }
-    javaexec {
-        description = 'Performs EclipseLink static weaving of entity classes'
-        def target = source
-        main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave'
-        args '-persistenceinfo', source, source, target
-        classpath sourceSets.main.runtimeClasspath
-    }
-    delete {
-        delete "${source}/META-INF/persistence.xml"
-    }
-}
-
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
-configurations {
-    providedRuntime // needed for Spring Boot executable WAR
-    providedCompile
-    compile() {
-        exclude module: 'hibernate-entitymanager'
-        exclude module: 'hibernate-validator'
-        exclude module: 'activation'
-        exclude module: 'bcmail-jdk14'
-        exclude module: 'bcprov-jdk14'
-        exclude module: 'bctsp-jdk14'
-        exclude module: 'c3p0'
-        exclude module: 'stax-api'
-        exclude module: 'jaxb-api'
-        exclude module: 'jaxb-impl'
-        exclude module: 'jboss-logging'
-        exclude module: 'itext-rtf'
-        exclude module: 'classworlds'
-    }
-    runtime
-}
-
-apply from: 'dependencies.gradle'
-
-// Configuration for the modernizer plugin
-// https://github.com/andygoossens/gradle-modernizer-plugin
-modernizer {
-    ignoreClassNamePatterns = [
-        '.*AbstractPersistableCustom',
-        '.*EntityTables',
-        '.*domain.*'
-    ]
-}
-
-// If we are running Gradle within Eclipse to enhance classes with OpenJPA,
-// set the classes directory to point to Eclipse's default build directory
-if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
-    sourceSets.main.java.outputDir = new File(rootProject.projectDir, "fineract-savings/bin/main")
-}
-
-eclipse {
-    project {
-        buildCommand([ LaunchConfigHandle: "<project>/.externalToolBuilders/OpenJPA Enhance Builder.launch" ],  'org.eclipse.ui.externaltools.ExternalToolBuilder')
-    }
-}
-
-/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */
-sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory
-sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory
-
-if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
-    sourceSets {
-        test {
-            java {
-                exclude '**/core/boot/tests/**'
-            }
-        }
-    }
-}
diff --git a/fineract-savings/dependencies.gradle b/fineract-savings/dependencies.gradle
deleted file mode 100644
index c6f4d7c..0000000
--- a/fineract-savings/dependencies.gradle
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-dependencies {
-    // Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
-    // Note that we never use 'api', because Fineract at least currently is a simple monolithic application ("WAR"), not a library.
-    // We also (normally should have) no need to ever use 'compileOnly'.
-
-    // implementation dependencies are directly used (compiled against) in src/main (and src/test)
-    //
-    implementation(project(path: ':fineract-core'))
-
-    implementation(
-            'org.springframework.boot:spring-boot-starter-web',
-            'org.springframework.boot:spring-boot-starter-security',
-            'jakarta.ws.rs:jakarta.ws.rs-api',
-            'org.glassfish.jersey.media:jersey-media-multipart',
-
-            'com.google.guava:guava',
-            'com.google.code.gson:gson',
-
-            'org.apache.commons:commons-lang3',
-
-            'com.jayway.jsonpath:json-path',
-
-            'com.github.spotbugs:spotbugs-annotations',
-            'io.swagger.core.v3:swagger-annotations-jakarta',
-
-            'com.squareup.retrofit2:converter-gson',
-
-            'org.springdoc:springdoc-openapi-starter-webmvc-ui',
-            'org.mapstruct:mapstruct',
-
-            'io.github.resilience4j:resilience4j-spring-boot2',
-            'org.apache.httpcomponents:httpcore',
-            )
-    compileOnly 'org.projectlombok:lombok'
-    annotationProcessor 'org.projectlombok:lombok'
-    annotationProcessor 'org.mapstruct:mapstruct-processor'
-    implementation ('org.springframework.boot:spring-boot-starter-data-jpa') {
-        exclude group: 'org.hibernate'
-    }
-    implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') {
-        exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence'
-    }
-    // testCompile dependencies are ONLY used in src/test, not src/main.
-    // Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
-    //
-    testImplementation( 'io.github.classgraph:classgraph' )
-    testImplementation ('org.springframework.boot:spring-boot-starter-test') {
-        exclude group: 'com.jayway.jsonpath', module: 'json-path'
-        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
-        exclude group: 'jakarta.activation'
-        exclude group: 'javax.activation'
-        exclude group: 'org.skyscreamer'
-    }
-    testImplementation ('org.mockito:mockito-inline')
-}
diff --git a/fineract-savings/src/main/resources/db/changelog/tenant/module/savings/parts/module-changelog-master.xml b/fineract-savings/src/main/resources/db/changelog/tenant/module/savings/parts/module-changelog-master.xml
deleted file mode 100644
index 8746633..0000000
--- a/fineract-savings/src/main/resources/db/changelog/tenant/module/savings/parts/module-changelog-master.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership. The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License. You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied. See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
-  <!-- Sequence is starting from 2000 to make it easier to move existing liquibase changesets here -->
-</databaseChangeLog>
diff --git a/fineract-savings/src/main/resources/jpa/savings/persistence.xml b/fineract-savings/src/main/resources/jpa/savings/persistence.xml
deleted file mode 100644
index bf9980f..0000000
--- a/fineract-savings/src/main/resources/jpa/savings/persistence.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements. See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership. The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License. You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied. See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-
-<persistence version="2.0"
-    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
-
-    <!--  This file is only used for static weaving, nothing more.  -->
-    <!--  You can find the runtime configuration in the JPAConfig class  -->
-    <persistence-unit name="jpa-pu" transaction-type="RESOURCE_LOCAL">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-        <!-- Fineract core module -->
-        <class>org.apache.fineract.accounting.glaccount.domain.GLAccount</class>
-        <class>org.apache.fineract.accounting.journalentry.domain.JournalEntry</class>
-        <class>org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom</class>
-        <class>org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom</class>
-        <class>org.apache.fineract.infrastructure.codes.domain.Code</class>
-        <class>org.apache.fineract.infrastructure.codes.domain.CodeValue</class>
-        <class>org.apache.fineract.infrastructure.documentmanagement.domain.Image</class>
-        <class>org.apache.fineract.organisation.staff.domain.Staff</class>
-        <class>org.apache.fineract.organisation.office.domain.Office</class>
-        <class>org.apache.fineract.organisation.office.domain.OrganisationCurrency</class>
-        <class>org.apache.fineract.organisation.monetary.domain.ApplicationCurrency</class>
-        <class>org.apache.fineract.organisation.holiday.domain.Holiday</class>
-        <class>org.apache.fineract.organisation.workingdays.domain.WorkingDays</class>
-        <class>org.apache.fineract.portfolio.group.domain.Group</class>
-        <class>org.apache.fineract.portfolio.group.domain.GroupLevel</class>
-        <class>org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory</class>
-        <class>org.apache.fineract.portfolio.group.domain.GroupRole</class>
-        <class>org.apache.fineract.portfolio.client.domain.Client</class>
-        <class>org.apache.fineract.portfolio.fund.domain.Fund</class>
-        <class>org.apache.fineract.portfolio.charge.domain.Charge</class>
-        <class>org.apache.fineract.portfolio.paymenttype.domain.PaymentType</class>
-        <class>org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail</class>
-        <class>org.apache.fineract.portfolio.tax.domain.TaxGroup</class>
-        <class>org.apache.fineract.portfolio.tax.domain.TaxGroupMappings</class>
-        <class>org.apache.fineract.portfolio.tax.domain.TaxComponent</class>
-        <class>org.apache.fineract.portfolio.tax.domain.TaxComponentHistory</class>
-        <class>org.apache.fineract.portfolio.calendar.domain.Calendar</class>
-        <class>org.apache.fineract.portfolio.calendar.domain.CalendarHistory</class>
-        <class>org.apache.fineract.portfolio.calendar.domain.CalendarInstance</class>
-        <class>org.apache.fineract.useradministration.domain.AppUser</class>
-        <class>org.apache.fineract.useradministration.domain.Role</class>
-        <class>org.apache.fineract.useradministration.domain.Permission</class>
-        <class>org.apache.fineract.useradministration.domain.AppUserClientMapping</class>
-        <exclude-unlisted-classes>false</exclude-unlisted-classes>
-        <properties>
-            <property name="eclipselink.weaving" value="static" />
-        </properties>
-    </persistence-unit>
-</persistence>
diff --git a/integration-tests/dependencies.gradle b/integration-tests/dependencies.gradle
index ff1cce9..206bd6a 100644
--- a/integration-tests/dependencies.gradle
+++ b/integration-tests/dependencies.gradle
@@ -25,7 +25,6 @@
             project(path: ':fineract-core', configuration: 'runtimeElements'),
             project(path: ':fineract-investor', configuration: 'runtimeElements'),
             project(path: ':fineract-loan', configuration: 'runtimeElements'),
-            project(path: ':fineract-savings', configuration: 'runtimeElements'),
             project(path: ':fineract-provider', configuration: 'runtimeElements'),
             project(path: ':fineract-avro-schemas', configuration: 'runtimeElements'),
             project(path: ':fineract-client', configuration: 'runtimeElements'),
diff --git a/settings.gradle b/settings.gradle
index 8227953..871f543 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -52,7 +52,6 @@
 include ':fineract-provider'
 include ':fineract-investor'
 include ':fineract-loan'
-include ':fineract-savings'
 include ':fineract-war'
 include ':integration-tests'
 include ':twofactor-tests'