Adjusting to package name changes in upstream repositories.
diff --git a/api/src/main/java/io/mifos/individuallending/api/v1/client/CaseDocumentsManager.java b/api/src/main/java/io/mifos/individuallending/api/v1/client/CaseDocumentsManager.java
index cfa83a8..ec7f418 100644
--- a/api/src/main/java/io/mifos/individuallending/api/v1/client/CaseDocumentsManager.java
+++ b/api/src/main/java/io/mifos/individuallending/api/v1/client/CaseDocumentsManager.java
@@ -18,8 +18,8 @@
  */
 package io.mifos.individuallending.api.v1.client;
 
-import io.mifos.core.api.util.CustomFeignClientsConfiguration;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseCustomerDocuments;
+import org.apache.fineract.cn.api.util.CustomFeignClientsConfiguration;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PathVariable;
diff --git a/api/src/main/java/io/mifos/individuallending/api/v1/client/IndividualLending.java b/api/src/main/java/io/mifos/individuallending/api/v1/client/IndividualLending.java
index de6edd9..7fc9f09 100644
--- a/api/src/main/java/io/mifos/individuallending/api/v1/client/IndividualLending.java
+++ b/api/src/main/java/io/mifos/individuallending/api/v1/client/IndividualLending.java
@@ -18,17 +18,20 @@
  */
 package io.mifos.individuallending.api.v1.client;
 
-import io.mifos.core.api.util.CustomFeignClientsConfiguration;
 import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPayment;
 import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPaymentPage;
 import io.mifos.individuallending.api.v1.domain.product.LossProvisionConfiguration;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.domain.CasePage;
+import java.util.stream.Stream;
+import org.apache.fineract.cn.api.util.CustomFeignClientsConfiguration;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.stream.Stream;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParameters.java b/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParameters.java
index dc6a8a2..faa1deb 100644
--- a/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParameters.java
+++ b/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParameters.java
@@ -18,17 +18,16 @@
  */
 package io.mifos.individuallending.api.v1.domain.caseinstance;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
 import io.mifos.portfolio.api.v1.domain.PaymentCycle;
 import io.mifos.portfolio.api.v1.domain.TermRange;
-import org.hibernate.validator.constraints.Range;
-import org.hibernate.validator.constraints.ScriptAssert;
-
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Objects;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
+import org.hibernate.validator.constraints.Range;
+import org.hibernate.validator.constraints.ScriptAssert;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshot.java b/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshot.java
index 0141969..b61270c 100644
--- a/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshot.java
+++ b/api/src/main/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshot.java
@@ -18,12 +18,11 @@
  */
 package io.mifos.individuallending.api.v1.domain.caseinstance;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
-
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 import java.util.List;
 import java.util.Objects;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/client/PortfolioManager.java b/api/src/main/java/io/mifos/portfolio/api/v1/client/PortfolioManager.java
index 8efb21e..a8815f1 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/client/PortfolioManager.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/client/PortfolioManager.java
@@ -18,12 +18,27 @@
  */
 package io.mifos.portfolio.api.v1.client;
 
-import io.mifos.core.api.annotation.ThrowsException;
-import io.mifos.core.api.util.CustomFeignClientsConfiguration;
+import io.mifos.portfolio.api.v1.domain.AccountAssignment;
+import io.mifos.portfolio.api.v1.domain.BalanceSegmentSet;
+import io.mifos.portfolio.api.v1.domain.Case;
+import io.mifos.portfolio.api.v1.domain.CasePage;
+import io.mifos.portfolio.api.v1.domain.CaseStatus;
+import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
+import io.mifos.portfolio.api.v1.domain.Command;
+import io.mifos.portfolio.api.v1.domain.ImportParameters;
+import io.mifos.portfolio.api.v1.domain.Pattern;
 import io.mifos.portfolio.api.v1.domain.Payment;
-import io.mifos.portfolio.api.v1.domain.*;
+import io.mifos.portfolio.api.v1.domain.Product;
+import io.mifos.portfolio.api.v1.domain.ProductPage;
+import io.mifos.portfolio.api.v1.domain.TaskDefinition;
+import io.mifos.portfolio.api.v1.domain.TaskInstance;
 import io.mifos.portfolio.api.v1.validation.ValidSortColumn;
 import io.mifos.portfolio.api.v1.validation.ValidSortDirection;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Set;
+import org.apache.fineract.cn.api.annotation.ThrowsException;
+import org.apache.fineract.cn.api.util.CustomFeignClientsConfiguration;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -32,10 +47,6 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Set;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/AccountAssignment.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/AccountAssignment.java
index 43c519f..049c384 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/AccountAssignment.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/AccountAssignment.java
@@ -18,13 +18,12 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
+import java.util.Objects;
+import javax.annotation.Nullable;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.ScriptAssert;
 
-import javax.annotation.Nullable;
-import java.util.Objects;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSet.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSet.java
index ecd7788..8905f9f 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSet.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSet.java
@@ -18,13 +18,12 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
-import io.mifos.core.lang.validation.constraints.ValidIdentifiers;
 import io.mifos.portfolio.api.v1.validation.ValidSegmentList;
-
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Objects;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifiers;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/Case.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/Case.java
index 8a33a90..22f379d 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/Case.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/Case.java
@@ -18,16 +18,15 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
 import io.mifos.portfolio.api.v1.validation.ValidAccountAssignments;
-import org.hibernate.validator.constraints.NotBlank;
-
-import javax.validation.constraints.DecimalMax;
-import javax.validation.constraints.DecimalMin;
-import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.Objects;
 import java.util.Set;
+import javax.validation.constraints.DecimalMax;
+import javax.validation.constraints.DecimalMin;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
+import org.hibernate.validator.constraints.NotBlank;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/ChargeDefinition.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/ChargeDefinition.java
index 2056df7..6368c1f 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/ChargeDefinition.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/ChargeDefinition.java
@@ -18,17 +18,16 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
 import io.mifos.portfolio.api.v1.validation.ValidChargeDefinition;
 import io.mifos.portfolio.api.v1.validation.ValidChargeReference;
 import io.mifos.portfolio.api.v1.validation.ValidPaymentCycleUnit;
-import org.hibernate.validator.constraints.NotBlank;
-
-import javax.annotation.Nullable;
-import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.time.temporal.ChronoUnit;
 import java.util.Objects;
+import javax.annotation.Nullable;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
+import org.hibernate.validator.constraints.NotBlank;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/Command.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/Command.java
index b04f8ff..2de6a9f 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/Command.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/Command.java
@@ -18,14 +18,13 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidLocalDateTimeString;
-
-import javax.annotation.Nullable;
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Objects;
+import javax.annotation.Nullable;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidLocalDateTimeString;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/ImportParameters.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/ImportParameters.java
index 3106f97..839f37c 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/ImportParameters.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/ImportParameters.java
@@ -18,15 +18,14 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidLocalDateTimeString;
-
-import javax.annotation.Nullable;
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import javax.annotation.Nullable;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidLocalDateTimeString;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/Product.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/Product.java
index 79ff2bf..256945e 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/Product.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/Product.java
@@ -20,14 +20,13 @@
 
 import io.mifos.portfolio.api.v1.validation.ValidAccountAssignments;
 import io.mifos.portfolio.api.v1.validation.ValidCurrencyCode;
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 import java.util.Objects;
 import java.util.Set;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
+import org.hibernate.validator.constraints.Length;
+import org.hibernate.validator.constraints.Range;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskDefinition.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskDefinition.java
index b8fa7be..a272afc 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskDefinition.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskDefinition.java
@@ -18,12 +18,11 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
-import org.hibernate.validator.constraints.NotBlank;
-
-import javax.validation.constraints.NotNull;
 import java.util.Objects;
 import java.util.Set;
+import javax.validation.constraints.NotNull;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
+import org.hibernate.validator.constraints.NotBlank;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskInstance.java b/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskInstance.java
index 9d0961a..3fbc6a4 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskInstance.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/domain/TaskInstance.java
@@ -18,10 +18,9 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
-import org.hibernate.validator.constraints.Length;
-
 import java.util.Objects;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
+import org.hibernate.validator.constraints.Length;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/main/java/io/mifos/portfolio/api/v1/validation/CheckChargeReference.java b/api/src/main/java/io/mifos/portfolio/api/v1/validation/CheckChargeReference.java
index 424797c..bfd3f82 100644
--- a/api/src/main/java/io/mifos/portfolio/api/v1/validation/CheckChargeReference.java
+++ b/api/src/main/java/io/mifos/portfolio/api/v1/validation/CheckChargeReference.java
@@ -18,11 +18,10 @@
  */
 package io.mifos.portfolio.api.v1.validation;
 
-import io.mifos.core.lang.validation.CheckIdentifier;
 import io.mifos.individuallending.api.v1.domain.product.ChargeProportionalDesignator;
-
 import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
+import org.apache.fineract.cn.lang.validation.CheckIdentifier;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParametersTest.java b/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParametersTest.java
index 35e6e1a..c44248b 100644
--- a/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParametersTest.java
+++ b/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CaseParametersTest.java
@@ -19,16 +19,15 @@
 package io.mifos.individuallending.api.v1.domain.caseinstance;
 
 import io.mifos.Fixture;
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
 import io.mifos.portfolio.api.v1.domain.TermRange;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 
 /**
diff --git a/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessFactorTest.java b/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessFactorTest.java
index 0c3c89e..9418f71 100644
--- a/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessFactorTest.java
+++ b/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessFactorTest.java
@@ -18,15 +18,14 @@
  */
 package io.mifos.individuallending.api.v1.domain.caseinstance;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.apache.commons.lang.RandomStringUtils;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshotTest.java b/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshotTest.java
index 1a8354e..d4d10a5 100644
--- a/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshotTest.java
+++ b/api/src/test/java/io/mifos/individuallending/api/v1/domain/caseinstance/CreditWorthinessSnapshotTest.java
@@ -18,15 +18,14 @@
  */
 package io.mifos.individuallending.api.v1.domain.caseinstance;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 
 /**
diff --git a/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionConfigurationTest.java b/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionConfigurationTest.java
index 0d41ebb..d55540f 100644
--- a/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionConfigurationTest.java
+++ b/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionConfigurationTest.java
@@ -18,15 +18,14 @@
  */
 package io.mifos.individuallending.api.v1.domain.product;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 public class LossProvisionConfigurationTest extends ValidationTest<LossProvisionConfiguration> {
 
diff --git a/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionStepTest.java b/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionStepTest.java
index 76ca159..ec3b85c 100644
--- a/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionStepTest.java
+++ b/api/src/test/java/io/mifos/individuallending/api/v1/domain/product/LossProvisionStepTest.java
@@ -18,13 +18,12 @@
  */
 package io.mifos.individuallending.api.v1.domain.product;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 public class LossProvisionStepTest extends ValidationTest<LossProvisionStep> {
 
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/AccountAssignmentTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/AccountAssignmentTest.java
index 16ac1bb..39db4a0 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/AccountAssignmentTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/AccountAssignmentTest.java
@@ -18,12 +18,11 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runners.Parameterized;
-
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceRangeTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceRangeTest.java
index ca14a11..85990b7 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceRangeTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceRangeTest.java
@@ -18,13 +18,12 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSetTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSetTest.java
index b84adbe..c70b424 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSetTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/BalanceSegmentSetTest.java
@@ -18,12 +18,13 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/CaseTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/CaseTest.java
index 5d0da5a..109a39c 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/CaseTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/CaseTest.java
@@ -19,14 +19,13 @@
 package io.mifos.portfolio.api.v1.domain;
 
 import io.mifos.Fixture;
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.apache.commons.lang.RandomStringUtils;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/ChargeDefinitionTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/ChargeDefinitionTest.java
index 6c71e2c..eb5b582 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/ChargeDefinitionTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/ChargeDefinitionTest.java
@@ -18,16 +18,15 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
-import org.apache.commons.lang.RandomStringUtils;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/CommandTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/CommandTest.java
index d1e6fc5..39aec7b 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/CommandTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/CommandTest.java
@@ -18,19 +18,18 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import static io.mifos.individuallending.api.v1.domain.product.ChargeIdentifiers.PROCESSING_FEE_ID;
 
 import java.time.Clock;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-
-import static io.mifos.individuallending.api.v1.domain.product.ChargeIdentifiers.PROCESSING_FEE_ID;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/ImportParametersTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/ImportParametersTest.java
index eb55f77..8b2b24b 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/ImportParametersTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/ImportParametersTest.java
@@ -18,21 +18,20 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import static io.mifos.individuallending.api.v1.domain.product.ChargeIdentifiers.PROCESSING_FEE_ID;
 
+import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import java.math.BigDecimal;
 import java.time.Clock;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-
-import static io.mifos.individuallending.api.v1.domain.product.ChargeIdentifiers.PROCESSING_FEE_ID;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/InterestRangeTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/InterestRangeTest.java
index e5a2ad3..86f3a41 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/InterestRangeTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/InterestRangeTest.java
@@ -18,14 +18,13 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/PaymentCycleTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/PaymentCycleTest.java
index b60e77b..453db28 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/PaymentCycleTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/PaymentCycleTest.java
@@ -18,13 +18,12 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runners.Parameterized;
-
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/ProductTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/ProductTest.java
index 24c2051..1a93e63 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/ProductTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/ProductTest.java
@@ -19,16 +19,15 @@
 package io.mifos.portfolio.api.v1.domain;
 
 import io.mifos.Fixture;
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.apache.commons.lang.RandomStringUtils;
-import org.apache.commons.lang.StringUtils;
-import org.junit.runners.Parameterized;
-
 import java.math.BigDecimal;
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskDefinitionTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskDefinitionTest.java
index b2e4b77..4863e0a 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskDefinitionTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskDefinitionTest.java
@@ -19,13 +19,12 @@
 package io.mifos.portfolio.api.v1.domain;
 
 import io.mifos.Fixture;
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.junit.runners.Parameterized;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskInstanceTest.java b/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskInstanceTest.java
index f95c086..2908542 100644
--- a/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskInstanceTest.java
+++ b/api/src/test/java/io/mifos/portfolio/api/v1/domain/TaskInstanceTest.java
@@ -18,13 +18,12 @@
  */
 package io.mifos.portfolio.api.v1.domain;
 
-import io.mifos.core.test.domain.ValidationTest;
-import io.mifos.core.test.domain.ValidationTestCase;
-import org.apache.commons.lang.RandomStringUtils;
-import org.junit.runners.Parameterized;
-
 import java.util.ArrayList;
 import java.util.Collection;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.fineract.cn.test.domain.ValidationTest;
+import org.apache.fineract.cn.test.domain.ValidationTestCase;
+import org.junit.runners.Parameterized;
 
 /**
  * @author Myrle Krantz
diff --git a/component-test/src/main/java/io/mifos/portfolio/AbstractPortfolioTest.java b/component-test/src/main/java/io/mifos/portfolio/AbstractPortfolioTest.java
index 13a4acb..26c63f9 100644
--- a/component-test/src/main/java/io/mifos/portfolio/AbstractPortfolioTest.java
+++ b/component-test/src/main/java/io/mifos/portfolio/AbstractPortfolioTest.java
@@ -18,26 +18,56 @@
  */
 package io.mifos.portfolio;
 
-import io.mifos.accounting.api.v1.client.LedgerManager;
-import io.mifos.anubis.test.v1.TenantApplicationSecurityEnvironmentTestRule;
-import io.mifos.core.api.context.AutoUserContext;
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.test.fixture.TenantDataStoreContextTestRule;
-import io.mifos.core.test.listener.EnableEventRecording;
-import io.mifos.core.test.listener.EventRecorder;
-import io.mifos.customer.api.v1.client.CustomerManager;
 import io.mifos.individuallending.api.v1.client.CaseDocumentsManager;
 import io.mifos.individuallending.api.v1.client.IndividualLending;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.api.v1.events.IndividualLoanCommandEvent;
 import io.mifos.portfolio.api.v1.client.PortfolioManager;
-import io.mifos.portfolio.api.v1.domain.*;
-import io.mifos.portfolio.api.v1.events.*;
+import io.mifos.portfolio.api.v1.domain.AccountAssignment;
+import io.mifos.portfolio.api.v1.domain.Case;
+import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
+import io.mifos.portfolio.api.v1.domain.Command;
+import io.mifos.portfolio.api.v1.domain.CostComponent;
+import io.mifos.portfolio.api.v1.domain.Payment;
+import io.mifos.portfolio.api.v1.domain.Product;
+import io.mifos.portfolio.api.v1.domain.TaskDefinition;
+import io.mifos.portfolio.api.v1.events.CaseEvent;
+import io.mifos.portfolio.api.v1.events.ChargeDefinitionEvent;
+import io.mifos.portfolio.api.v1.events.EventConstants;
+import io.mifos.portfolio.api.v1.events.TaskDefinitionEvent;
+import io.mifos.portfolio.api.v1.events.TaskInstanceEvent;
 import io.mifos.portfolio.service.config.PortfolioServiceConfiguration;
 import io.mifos.portfolio.service.internal.util.AccountingListener;
 import io.mifos.portfolio.service.internal.util.RhythmAdapter;
-import org.junit.*;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+import org.apache.fineract.cn.accounting.api.v1.client.LedgerManager;
+import org.apache.fineract.cn.anubis.test.v1.TenantApplicationSecurityEnvironmentTestRule;
+import org.apache.fineract.cn.api.context.AutoUserContext;
+import org.apache.fineract.cn.customer.api.v1.client.CustomerManager;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.test.fixture.TenantDataStoreContextTestRule;
+import org.apache.fineract.cn.test.listener.EnableEventRecording;
+import org.apache.fineract.cn.test.listener.EventRecorder;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Rule;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 import org.slf4j.Logger;
@@ -55,18 +85,6 @@
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.*;
-import java.util.function.Consumer;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/component-test/src/main/java/io/mifos/portfolio/AccountingFixture.java b/component-test/src/main/java/io/mifos/portfolio/AccountingFixture.java
index a81bb18..3da9787 100644
--- a/component-test/src/main/java/io/mifos/portfolio/AccountingFixture.java
+++ b/component-test/src/main/java/io/mifos/portfolio/AccountingFixture.java
@@ -18,13 +18,38 @@
  */
 package io.mifos.portfolio;
 
-import io.mifos.accounting.api.v1.client.LedgerManager;
-import io.mifos.accounting.api.v1.domain.*;
-import io.mifos.core.api.util.NotFoundException;
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.lang.TenantContextHolder;
+import static org.mockito.Matchers.argThat;
+
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.portfolio.service.internal.util.AccountingListener;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
+import javax.annotation.Nullable;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import org.apache.fineract.cn.accounting.api.v1.client.LedgerManager;
+import org.apache.fineract.cn.accounting.api.v1.domain.Account;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountEntry;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountPage;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountType;
+import org.apache.fineract.cn.accounting.api.v1.domain.Creditor;
+import org.apache.fineract.cn.accounting.api.v1.domain.Debtor;
+import org.apache.fineract.cn.accounting.api.v1.domain.JournalEntry;
+import org.apache.fineract.cn.accounting.api.v1.domain.Ledger;
+import org.apache.fineract.cn.api.util.NotFoundException;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.lang.TenantContextHolder;
 import org.hamcrest.Description;
 import org.junit.Assert;
 import org.mockito.AdditionalMatchers;
@@ -34,18 +59,6 @@
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-import javax.annotation.Nullable;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-import java.util.stream.Stream;
-
-import static org.mockito.Matchers.argThat;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/component-test/src/main/java/io/mifos/portfolio/SuiteTestEnvironment.java b/component-test/src/main/java/io/mifos/portfolio/SuiteTestEnvironment.java
index 67a707d..31c9dec 100644
--- a/component-test/src/main/java/io/mifos/portfolio/SuiteTestEnvironment.java
+++ b/component-test/src/main/java/io/mifos/portfolio/SuiteTestEnvironment.java
@@ -18,13 +18,13 @@
  */
 package io.mifos.portfolio;
 
-import io.mifos.core.test.env.TestEnvironment;
-import io.mifos.core.test.fixture.cassandra.CassandraInitializer;
-import io.mifos.core.test.fixture.mariadb.MariaDBInitializer;
+import org.apache.fineract.cn.test.env.TestEnvironment;
+import org.apache.fineract.cn.test.fixture.cassandra.CassandraInitializer;
+import org.apache.fineract.cn.test.fixture.mariadb.MariaDBInitializer;
 import org.junit.ClassRule;
 import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 import org.junit.rules.RunExternalResourceOnce;
+import org.junit.rules.TestRule;
 
 /**
  * @author Myrle Krantz
diff --git a/component-test/src/main/java/io/mifos/portfolio/TestAccountingInteractionInLoanWorkflow.java b/component-test/src/main/java/io/mifos/portfolio/TestAccountingInteractionInLoanWorkflow.java
index 1ce881f..cbba81d 100644
--- a/component-test/src/main/java/io/mifos/portfolio/TestAccountingInteractionInLoanWorkflow.java
+++ b/component-test/src/main/java/io/mifos/portfolio/TestAccountingInteractionInLoanWorkflow.java
@@ -18,41 +18,60 @@
  */
 package io.mifos.portfolio;
 
+import static io.mifos.portfolio.Fixture.MINOR_CURRENCY_UNIT_DIGITS;
+
 import com.google.gson.Gson;
-import io.mifos.accounting.api.v1.domain.AccountType;
-import io.mifos.accounting.api.v1.domain.Creditor;
-import io.mifos.accounting.api.v1.domain.Debtor;
-import io.mifos.core.api.util.ApiFactory;
-import io.mifos.core.lang.DateConverter;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseParameters;
 import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPayment;
-import io.mifos.individuallending.api.v1.domain.product.*;
+import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
+import io.mifos.individuallending.api.v1.domain.product.ChargeIdentifiers;
+import io.mifos.individuallending.api.v1.domain.product.ChargeProportionalDesignator;
+import io.mifos.individuallending.api.v1.domain.product.LossProvisionConfiguration;
+import io.mifos.individuallending.api.v1.domain.product.LossProvisionStep;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.api.v1.events.IndividualLoanCommandEvent;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
-import io.mifos.portfolio.api.v1.domain.*;
+import io.mifos.portfolio.api.v1.domain.AccountAssignment;
+import io.mifos.portfolio.api.v1.domain.BalanceSegmentSet;
+import io.mifos.portfolio.api.v1.domain.Case;
+import io.mifos.portfolio.api.v1.domain.CaseStatus;
+import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
+import io.mifos.portfolio.api.v1.domain.CostComponent;
+import io.mifos.portfolio.api.v1.domain.ImportParameters;
+import io.mifos.portfolio.api.v1.domain.Payment;
+import io.mifos.portfolio.api.v1.domain.PaymentCycle;
+import io.mifos.portfolio.api.v1.domain.Product;
+import io.mifos.portfolio.api.v1.domain.TaskDefinition;
 import io.mifos.portfolio.api.v1.events.BalanceSegmentSetEvent;
 import io.mifos.portfolio.api.v1.events.ChargeDefinitionEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import io.mifos.rhythm.spi.v1.client.BeatListener;
-import io.mifos.rhythm.spi.v1.domain.BeatPublish;
-import io.mifos.rhythm.spi.v1.events.BeatPublishEvent;
-import org.assertj.core.util.Sets;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.annotation.Nullable;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
-
-import static io.mifos.portfolio.Fixture.MINOR_CURRENCY_UNIT_DIGITS;
+import javax.annotation.Nullable;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountType;
+import org.apache.fineract.cn.accounting.api.v1.domain.Creditor;
+import org.apache.fineract.cn.accounting.api.v1.domain.Debtor;
+import org.apache.fineract.cn.api.util.ApiFactory;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.rhythm.spi.v1.client.BeatListener;
+import org.apache.fineract.cn.rhythm.spi.v1.domain.BeatPublish;
+import org.apache.fineract.cn.rhythm.spi.v1.events.BeatPublishEvent;
+import org.assertj.core.util.Sets;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author Myrle Krantz
@@ -138,7 +157,8 @@
       week++;
     }
 
-    step8Close(DateConverter.fromIsoString(plannedPayments.get(plannedPayments.size()-1).getPayment().getDate()));
+    step8Close(DateConverter
+        .fromIsoString(plannedPayments.get(plannedPayments.size()-1).getPayment().getDate()));
   }
 
 
@@ -985,7 +1005,7 @@
     }
     final BeatPublish interestBeat = new BeatPublish(beatIdentifier, midnightTimeStamp);
     portfolioBeatListener.publishBeat(interestBeat);
-    Assert.assertTrue(this.eventRecorder.wait(io.mifos.rhythm.spi.v1.events.EventConstants.POST_PUBLISHEDBEAT,
+    Assert.assertTrue(this.eventRecorder.wait(org.apache.fineract.cn.rhythm.spi.v1.events.EventConstants.POST_PUBLISHEDBEAT,
         new BeatPublishEvent(EventConstants.DESTINATION, beatIdentifier, midnightTimeStamp)));
 
     Assert.assertTrue(this.eventRecorder.wait(IndividualLoanEventConstants.CHECK_LATE_INDIVIDUALLOAN_CASE,
@@ -1129,7 +1149,7 @@
 
     final BeatPublish interestBeat = new BeatPublish(beatIdentifier, midnightTimeStamp);
     portfolioBeatListener.publishBeat(interestBeat);
-    Assert.assertTrue(this.eventRecorder.wait(io.mifos.rhythm.spi.v1.events.EventConstants.POST_PUBLISHEDBEAT,
+    Assert.assertTrue(this.eventRecorder.wait(org.apache.fineract.cn.rhythm.spi.v1.events.EventConstants.POST_PUBLISHEDBEAT,
         new BeatPublishEvent(EventConstants.DESTINATION, beatIdentifier, midnightTimeStamp)));
 
     Assert.assertTrue(this.eventRecorder.wait(IndividualLoanEventConstants.CHECK_LATE_INDIVIDUALLOAN_CASE,
diff --git a/component-test/src/main/java/io/mifos/portfolio/TestCases.java b/component-test/src/main/java/io/mifos/portfolio/TestCases.java
index 961385e..c648b1e 100644
--- a/component-test/src/main/java/io/mifos/portfolio/TestCases.java
+++ b/component-test/src/main/java/io/mifos/portfolio/TestCases.java
@@ -19,8 +19,6 @@
 package io.mifos.portfolio;
 
 import com.google.gson.Gson;
-import io.mifos.core.api.util.NotFoundException;
-import io.mifos.core.test.domain.TimeStampChecker;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseParameters;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CreditWorthinessFactor;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CreditWorthinessSnapshot;
@@ -31,15 +29,20 @@
 import io.mifos.portfolio.api.v1.domain.Product;
 import io.mifos.portfolio.api.v1.events.CaseEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import org.junit.Assert;
-import org.junit.Test;
-import org.mockito.Mockito;
-
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.fineract.cn.api.util.NotFoundException;
+import org.apache.fineract.cn.test.domain.TimeStampChecker;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
 
 /**
  * @author Myrle Krantz
diff --git a/component-test/src/main/java/io/mifos/portfolio/TestChargeDefinitions.java b/component-test/src/main/java/io/mifos/portfolio/TestChargeDefinitions.java
index 10ec53f..4eb9a77 100644
--- a/component-test/src/main/java/io/mifos/portfolio/TestChargeDefinitions.java
+++ b/component-test/src/main/java/io/mifos/portfolio/TestChargeDefinitions.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.portfolio;
 
-import io.mifos.core.api.util.NotFoundException;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.product.ChargeIdentifiers;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
@@ -26,15 +25,15 @@
 import io.mifos.portfolio.api.v1.domain.Product;
 import io.mifos.portfolio.api.v1.events.ChargeDefinitionEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.fineract.cn.api.util.NotFoundException;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * @author Myrle Krantz
diff --git a/component-test/src/main/java/io/mifos/portfolio/TestIndividualLoans.java b/component-test/src/main/java/io/mifos/portfolio/TestIndividualLoans.java
index b52de77..d799758 100644
--- a/component-test/src/main/java/io/mifos/portfolio/TestIndividualLoans.java
+++ b/component-test/src/main/java/io/mifos/portfolio/TestIndividualLoans.java
@@ -19,24 +19,23 @@
 package io.mifos.portfolio;
 
 import com.google.gson.Gson;
-import io.mifos.core.lang.DateConverter;
+import io.mifos.individuallending.api.v1.client.IndividualLending;
+import io.mifos.individuallending.api.v1.domain.caseinstance.CaseParameters;
+import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPaymentPage;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.domain.CasePage;
 import io.mifos.portfolio.api.v1.domain.Product;
 import io.mifos.portfolio.api.v1.events.CaseEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import io.mifos.individuallending.api.v1.client.IndividualLending;
-import io.mifos.individuallending.api.v1.domain.caseinstance.CaseParameters;
-import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPaymentPage;
-import org.junit.Assert;
-import org.junit.Test;
-import org.mockito.Mockito;
-
 import java.time.Clock;
 import java.time.LocalDateTime;
 import java.util.HashSet;
 import java.util.Set;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
 
 /**
  * @author Myrle Krantz
diff --git a/component-test/src/main/java/io/mifos/portfolio/TestProducts.java b/component-test/src/main/java/io/mifos/portfolio/TestProducts.java
index 0903846..d5f2996 100644
--- a/component-test/src/main/java/io/mifos/portfolio/TestProducts.java
+++ b/component-test/src/main/java/io/mifos/portfolio/TestProducts.java
@@ -19,20 +19,21 @@
 package io.mifos.portfolio;
 
 import com.google.gson.Gson;
-import io.mifos.core.api.util.NotFoundException;
-import io.mifos.core.test.domain.TimeStampChecker;
 import io.mifos.individuallending.api.v1.domain.product.ProductParameters;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.portfolio.api.v1.client.ProductAlreadyExistsException;
 import io.mifos.portfolio.api.v1.client.ProductDefinitionIncomplete;
 import io.mifos.portfolio.api.v1.client.ProductInUseException;
-import io.mifos.portfolio.api.v1.domain.*;
+import io.mifos.portfolio.api.v1.domain.AccountAssignment;
+import io.mifos.portfolio.api.v1.domain.BalanceRange;
+import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
+import io.mifos.portfolio.api.v1.domain.InterestBasis;
+import io.mifos.portfolio.api.v1.domain.InterestRange;
+import io.mifos.portfolio.api.v1.domain.Product;
+import io.mifos.portfolio.api.v1.domain.ProductPage;
+import io.mifos.portfolio.api.v1.domain.TermRange;
 import io.mifos.portfolio.api.v1.events.ChargeDefinitionEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import org.apache.commons.lang.StringUtils;
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.math.BigDecimal;
 import java.time.temporal.ChronoUnit;
 import java.util.Collections;
@@ -40,6 +41,11 @@
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
+import org.apache.commons.lang.StringUtils;
+import org.apache.fineract.cn.api.util.NotFoundException;
+import org.apache.fineract.cn.test.domain.TimeStampChecker;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * @author Myrle Krantz
diff --git a/component-test/src/main/java/io/mifos/portfolio/TestTaskDefinitions.java b/component-test/src/main/java/io/mifos/portfolio/TestTaskDefinitions.java
index d073db9..b7a6b7e 100644
--- a/component-test/src/main/java/io/mifos/portfolio/TestTaskDefinitions.java
+++ b/component-test/src/main/java/io/mifos/portfolio/TestTaskDefinitions.java
@@ -18,17 +18,16 @@
  */
 package io.mifos.portfolio;
 
-import io.mifos.core.api.util.NotFoundException;
 import io.mifos.portfolio.api.v1.client.ProductInUseException;
 import io.mifos.portfolio.api.v1.domain.Product;
 import io.mifos.portfolio.api.v1.domain.TaskDefinition;
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.api.v1.events.TaskDefinitionEvent;
+import java.util.List;
+import org.apache.fineract.cn.api.util.NotFoundException;
 import org.junit.Assert;
 import org.junit.Test;
 
-import java.util.List;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/component-test/src/main/java/io/mifos/portfolio/TestTaskInstances.java b/component-test/src/main/java/io/mifos/portfolio/TestTaskInstances.java
index 09235d3..d9d46d0 100644
--- a/component-test/src/main/java/io/mifos/portfolio/TestTaskInstances.java
+++ b/component-test/src/main/java/io/mifos/portfolio/TestTaskInstances.java
@@ -18,9 +18,6 @@
  */
 package io.mifos.portfolio;
 
-import io.mifos.core.api.context.AutoUserContext;
-import io.mifos.core.api.util.NotFoundException;
-import io.mifos.core.test.domain.TimeStampChecker;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
 import io.mifos.portfolio.api.v1.client.TaskExecutionBySameUserAsCaseCreation;
@@ -32,14 +29,16 @@
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.api.v1.events.TaskDefinitionEvent;
 import io.mifos.portfolio.api.v1.events.TaskInstanceEvent;
-import org.junit.Assert;
-import org.junit.Test;
-
 import java.time.Clock;
 import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
+import org.apache.fineract.cn.api.context.AutoUserContext;
+import org.apache.fineract.cn.api.util.NotFoundException;
+import org.apache.fineract.cn.test.domain.TimeStampChecker;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * @author Myrle Krantz
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/BalanceSegmentSetEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/BalanceSegmentSetEventListener.java
index 5116a85..deb5b6a 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/BalanceSegmentSetEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/BalanceSegmentSetEventListener.java
@@ -18,10 +18,10 @@
  */
 package io.mifos.portfolio.listener;
 
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
 import io.mifos.portfolio.api.v1.events.BalanceSegmentSetEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/BeatPublishEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/BeatPublishEventListener.java
index 00624c6..b94409a 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/BeatPublishEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/BeatPublishEventListener.java
@@ -18,10 +18,10 @@
  */
 package io.mifos.portfolio.listener;
 
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
-import io.mifos.rhythm.spi.v1.events.EventConstants;
-import io.mifos.rhythm.spi.v1.events.BeatPublishEvent;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.rhythm.spi.v1.events.BeatPublishEvent;
+import org.apache.fineract.cn.rhythm.spi.v1.events.EventConstants;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/CaseDocumentsListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/CaseDocumentsListener.java
index 2b9b2e2..f0fd3f9 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/CaseDocumentsListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/CaseDocumentsListener.java
@@ -18,10 +18,10 @@
  */
 package io.mifos.portfolio.listener;
 
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
 import io.mifos.portfolio.api.v1.events.CaseEvent;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/CaseEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/CaseEventListener.java
index fe31151..7651ff7 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/CaseEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/CaseEventListener.java
@@ -18,10 +18,10 @@
  */
 package io.mifos.portfolio.listener;
 
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
 import io.mifos.portfolio.api.v1.events.CaseEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/IndividualLoanCaseCommandEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/IndividualLoanCaseCommandEventListener.java
index 0c5e0c2..21bf336 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/IndividualLoanCaseCommandEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/IndividualLoanCaseCommandEventListener.java
@@ -20,8 +20,8 @@
 
 import io.mifos.individuallending.api.v1.events.IndividualLoanCommandEvent;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/LossProvisionStepsEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/LossProvisionStepsEventListener.java
index 395a215..98e0abd 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/LossProvisionStepsEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/LossProvisionStepsEventListener.java
@@ -18,9 +18,9 @@
  */
 package io.mifos.portfolio.listener;
 
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/MigrationEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/MigrationEventListener.java
index 7975299..fe314f7 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/MigrationEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/MigrationEventListener.java
@@ -19,8 +19,8 @@
 package io.mifos.portfolio.listener;
 
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/ProductChargeDefinitionEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/ProductChargeDefinitionEventListener.java
index a4dc493..ceb927b 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/ProductChargeDefinitionEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/ProductChargeDefinitionEventListener.java
@@ -20,8 +20,8 @@
 
 import io.mifos.portfolio.api.v1.events.ChargeDefinitionEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/ProductEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/ProductEventListener.java
index fb8042b..07010a5 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/ProductEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/ProductEventListener.java
@@ -19,8 +19,8 @@
 package io.mifos.portfolio.listener;
 
 import io.mifos.portfolio.api.v1.events.EventConstants;
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/TaskDefinitionEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/TaskDefinitionEventListener.java
index 2d1e910..ba9da59 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/TaskDefinitionEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/TaskDefinitionEventListener.java
@@ -20,8 +20,8 @@
 
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.api.v1.events.TaskDefinitionEvent;
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/component-test/src/main/java/io/mifos/portfolio/listener/TaskInstanceEventListener.java b/component-test/src/main/java/io/mifos/portfolio/listener/TaskInstanceEventListener.java
index 9f98b34..9a300ca 100644
--- a/component-test/src/main/java/io/mifos/portfolio/listener/TaskInstanceEventListener.java
+++ b/component-test/src/main/java/io/mifos/portfolio/listener/TaskInstanceEventListener.java
@@ -18,10 +18,10 @@
  */
 package io.mifos.portfolio.listener;
 
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.test.listener.EventRecorder;
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.api.v1.events.TaskInstanceEvent;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
diff --git a/service/src/main/java/io/mifos/individuallending/IndividualLendingCommandDispatcher.java b/service/src/main/java/io/mifos/individuallending/IndividualLendingCommandDispatcher.java
index 9eb851f..8c7175c 100644
--- a/service/src/main/java/io/mifos/individuallending/IndividualLendingCommandDispatcher.java
+++ b/service/src/main/java/io/mifos/individuallending/IndividualLendingCommandDispatcher.java
@@ -18,13 +18,21 @@
  */
 package io.mifos.individuallending;
 
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
-import io.mifos.individuallending.internal.command.*;
+import io.mifos.individuallending.internal.command.AcceptPaymentCommand;
+import io.mifos.individuallending.internal.command.ApproveCommand;
+import io.mifos.individuallending.internal.command.CloseCommand;
+import io.mifos.individuallending.internal.command.DenyCommand;
+import io.mifos.individuallending.internal.command.DisburseCommand;
+import io.mifos.individuallending.internal.command.ImportCommand;
+import io.mifos.individuallending.internal.command.OpenCommand;
+import io.mifos.individuallending.internal.command.RecoverCommand;
+import io.mifos.individuallending.internal.command.WriteOffCommand;
 import io.mifos.portfolio.api.v1.domain.Command;
 import io.mifos.portfolio.api.v1.domain.ImportParameters;
 import io.mifos.products.spi.ProductCommandDispatcher;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -74,7 +82,8 @@
         this.commandGateway.process(new RecoverCommand(productIdentifier, caseIdentifier, command));
         break;
       default:
-        throw ServiceException.badRequest("Action ''{0}'' is not implemented for individual loans.", actionIdentifier);
+        throw ServiceException
+            .badRequest("Action ''{0}'' is not implemented for individual loans.", actionIdentifier);
     }
   }
 
diff --git a/service/src/main/java/io/mifos/individuallending/IndividualLendingPatternFactory.java b/service/src/main/java/io/mifos/individuallending/IndividualLendingPatternFactory.java
index 217387c..b5c4121 100644
--- a/service/src/main/java/io/mifos/individuallending/IndividualLendingPatternFactory.java
+++ b/service/src/main/java/io/mifos/individuallending/IndividualLendingPatternFactory.java
@@ -19,9 +19,6 @@
 package io.mifos.individuallending;
 
 import com.google.gson.Gson;
-import io.mifos.accounting.api.v1.domain.AccountType;
-import io.mifos.core.lang.ServiceException;
-import io.mifos.customer.api.v1.client.CustomerManager;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseParameters;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
@@ -33,27 +30,52 @@
 import io.mifos.individuallending.internal.service.ChargeDefinitionService;
 import io.mifos.individuallending.internal.service.DataContextOfAction;
 import io.mifos.individuallending.internal.service.DataContextService;
-import io.mifos.individuallending.internal.service.costcomponent.*;
-import io.mifos.portfolio.api.v1.domain.*;
+import io.mifos.individuallending.internal.service.costcomponent.AcceptPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.ApplyInterestPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.ApprovePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.ClosePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.DenyPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.DisbursePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.MarkInArrearsPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.MarkLatePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.OpenPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.PaymentBuilder;
+import io.mifos.individuallending.internal.service.costcomponent.PaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.RealRunningBalances;
+import io.mifos.individuallending.internal.service.costcomponent.RecoverPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.WriteOffPaymentBuilderService;
+import io.mifos.portfolio.api.v1.domain.Case;
+import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
+import io.mifos.portfolio.api.v1.domain.Pattern;
+import io.mifos.portfolio.api.v1.domain.Payment;
+import io.mifos.portfolio.api.v1.domain.RequiredAccountAssignment;
 import io.mifos.portfolio.service.ServiceConstants;
 import io.mifos.portfolio.service.internal.util.AccountingAdapter;
 import io.mifos.products.spi.PatternFactory;
 import io.mifos.products.spi.ProductCommandDispatcher;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import javax.validation.ConstraintViolation;
 import javax.validation.Validation;
 import javax.validation.Validator;
 import javax.validation.ValidatorFactory;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountType;
+import org.apache.fineract.cn.customer.api.v1.client.CustomerManager;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/command/handler/BeatPublishCommandHandler.java b/service/src/main/java/io/mifos/individuallending/internal/command/handler/BeatPublishCommandHandler.java
index 80bbd30..2977c08 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/command/handler/BeatPublishCommandHandler.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/command/handler/BeatPublishCommandHandler.java
@@ -18,14 +18,6 @@
  */
 package io.mifos.individuallending.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.command.internal.CommandBus;
-import io.mifos.core.lang.ApplicationName;
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.api.v1.events.IndividualLoanCommandEvent;
@@ -51,16 +43,6 @@
 import io.mifos.portfolio.service.internal.repository.CaseEntity;
 import io.mifos.portfolio.service.internal.repository.CaseRepository;
 import io.mifos.portfolio.service.internal.util.AccountingAdapter;
-import io.mifos.rhythm.spi.v1.domain.BeatPublish;
-import io.mifos.rhythm.spi.v1.events.BeatPublishEvent;
-import io.mifos.rhythm.spi.v1.events.EventConstants;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
-import org.springframework.transaction.annotation.Transactional;
-
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -70,6 +52,23 @@
 import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.command.internal.CommandBus;
+import org.apache.fineract.cn.lang.ApplicationName;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.apache.fineract.cn.rhythm.spi.v1.domain.BeatPublish;
+import org.apache.fineract.cn.rhythm.spi.v1.events.BeatPublishEvent;
+import org.apache.fineract.cn.rhythm.spi.v1.events.EventConstants;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author Myrle Krantz
@@ -164,7 +163,8 @@
 
     final LocalDateTime dateOfMostRecentDisbursement = dateOfMostRecentDisburse(dataContextOfAction.getCustomerCaseEntity().getId())
             .orElseThrow(() ->
-                ServiceException.badRequest("No last disbursal date for ''{0}.{1}'' could be determined.  " +
+                ServiceException
+                    .badRequest("No last disbursal date for ''{0}.{1}'' could be determined.  " +
                     "Therefore it cannot be checked for lateness.", productIdentifier, caseIdentifier));
 
     final List<Period> repaymentPeriods = ScheduledActionHelpers.generateRepaymentPeriods(
diff --git a/service/src/main/java/io/mifos/individuallending/internal/command/handler/CaseDocumentsCommandHandler.java b/service/src/main/java/io/mifos/individuallending/internal/command/handler/CaseDocumentsCommandHandler.java
index a6ff26e..d360926 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/command/handler/CaseDocumentsCommandHandler.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/command/handler/CaseDocumentsCommandHandler.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.individuallending.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseCustomerDocuments;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
 import io.mifos.individuallending.internal.command.ChangeCaseDocuments;
@@ -33,12 +28,16 @@
 import io.mifos.individuallending.internal.repository.CaseParametersRepository;
 import io.mifos.portfolio.api.v1.events.CaseEvent;
 import io.mifos.portfolio.service.internal.repository.CaseRepository;
-import org.springframework.transaction.annotation.Transactional;
-
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author Myrle Krantz
@@ -65,7 +64,8 @@
     final CaseParametersEntity caseparametersEntity =
         caseRepository.findByProductIdentifierAndIdentifier(command.getProductIdentifier(), command.getCaseIdentifier())
             .flatMap(x -> caseParametersRepository.findByCaseId(x.getId()))
-            .orElseThrow(() -> ServiceException.notFound("Case ''{0}.{1}'' not found", command.getProductIdentifier(), command.getCaseIdentifier()));
+            .orElseThrow(() -> ServiceException
+                .notFound("Case ''{0}.{1}'' not found", command.getProductIdentifier(), command.getCaseIdentifier()));
 
     final Map<CaseCustomerDocuments.Document, CaseCustomerDocumentEntity> existingCaseCustomerDocuments
         = caseCustomerDocumentsRepository.findByCaseParametersId(caseparametersEntity.getId())
diff --git a/service/src/main/java/io/mifos/individuallending/internal/command/handler/IndividualLoanCommandHandler.java b/service/src/main/java/io/mifos/individuallending/internal/command/handler/IndividualLoanCommandHandler.java
index 185a9b8..2858387 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/command/handler/IndividualLoanCommandHandler.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/command/handler/IndividualLoanCommandHandler.java
@@ -19,19 +19,23 @@
 package io.mifos.individuallending.internal.command.handler;
 
 
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.IndividualLendingPatternFactory;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.api.v1.events.IndividualLoanCommandEvent;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
-import io.mifos.individuallending.internal.command.*;
+import io.mifos.individuallending.internal.command.AcceptPaymentCommand;
+import io.mifos.individuallending.internal.command.ApplyInterestCommand;
+import io.mifos.individuallending.internal.command.ApproveCommand;
+import io.mifos.individuallending.internal.command.CloseCommand;
+import io.mifos.individuallending.internal.command.DenyCommand;
+import io.mifos.individuallending.internal.command.DisburseCommand;
+import io.mifos.individuallending.internal.command.ImportCommand;
+import io.mifos.individuallending.internal.command.MarkInArrearsCommand;
+import io.mifos.individuallending.internal.command.MarkLateCommand;
+import io.mifos.individuallending.internal.command.OpenCommand;
+import io.mifos.individuallending.internal.command.RecoverCommand;
+import io.mifos.individuallending.internal.command.WriteOffCommand;
 import io.mifos.individuallending.internal.repository.CaseParametersEntity;
 import io.mifos.individuallending.internal.repository.CaseParametersRepository;
 import io.mifos.individuallending.internal.repository.LateCaseEntity;
@@ -39,18 +43,31 @@
 import io.mifos.individuallending.internal.service.DataContextOfAction;
 import io.mifos.individuallending.internal.service.DataContextService;
 import io.mifos.individuallending.internal.service.DesignatorToAccountIdentifierMapper;
-import io.mifos.individuallending.internal.service.costcomponent.*;
+import io.mifos.individuallending.internal.service.costcomponent.AcceptPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.ApplyInterestPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.ApprovePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.ClosePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.CostComponentService;
+import io.mifos.individuallending.internal.service.costcomponent.DenyPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.DisbursePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.MarkInArrearsPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.MarkLatePaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.OpenPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.PaymentBuilder;
+import io.mifos.individuallending.internal.service.costcomponent.RealRunningBalances;
+import io.mifos.individuallending.internal.service.costcomponent.RecoverPaymentBuilderService;
+import io.mifos.individuallending.internal.service.costcomponent.WriteOffPaymentBuilderService;
 import io.mifos.individuallending.internal.service.schedule.ScheduledActionHelpers;
 import io.mifos.portfolio.api.v1.domain.AccountAssignment;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.domain.CostComponent;
 import io.mifos.portfolio.service.internal.mapper.CaseMapper;
-import io.mifos.portfolio.service.internal.repository.*;
+import io.mifos.portfolio.service.internal.repository.CaseCommandEntity;
+import io.mifos.portfolio.service.internal.repository.CaseCommandRepository;
+import io.mifos.portfolio.service.internal.repository.CaseEntity;
+import io.mifos.portfolio.service.internal.repository.CaseRepository;
+import io.mifos.portfolio.service.internal.repository.TaskInstanceRepository;
 import io.mifos.portfolio.service.internal.util.AccountingAdapter;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Nullable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -60,6 +77,16 @@
 import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
+import javax.annotation.Nullable;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/command/handler/LossProvisionStepsCommandHandler.java b/service/src/main/java/io/mifos/individuallending/internal/command/handler/LossProvisionStepsCommandHandler.java
index f4908ff..8063236 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/command/handler/LossProvisionStepsCommandHandler.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/command/handler/LossProvisionStepsCommandHandler.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.individuallending.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.events.IndividualLoanEventConstants;
 import io.mifos.individuallending.internal.command.ChangeLossProvisionSteps;
 import io.mifos.individuallending.internal.mapper.LossProvisionStepMapper;
@@ -30,12 +25,16 @@
 import io.mifos.individuallending.internal.repository.LossProvisionStepRepository;
 import io.mifos.portfolio.service.internal.repository.ProductEntity;
 import io.mifos.portfolio.service.internal.repository.ProductRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
 import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
 
 /**
diff --git a/service/src/main/java/io/mifos/individuallending/internal/repository/LateCaseEntity.java b/service/src/main/java/io/mifos/individuallending/internal/repository/LateCaseEntity.java
index b238017..f4fa223 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/repository/LateCaseEntity.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/repository/LateCaseEntity.java
@@ -18,11 +18,16 @@
  */
 package io.mifos.individuallending.internal.repository;
 
-import io.mifos.core.mariadb.util.LocalDateTimeConverter;
-
-import javax.persistence.*;
 import java.time.LocalDateTime;
 import java.util.Objects;
+import javax.persistence.Column;
+import javax.persistence.Convert;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/CaseDocumentsService.java b/service/src/main/java/io/mifos/individuallending/internal/service/CaseDocumentsService.java
index 196358d..4b4c128 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/CaseDocumentsService.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/CaseDocumentsService.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.individuallending.internal.service;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseCustomerDocuments;
 import io.mifos.individuallending.internal.mapper.CaseCustomerDocumentsMapper;
 import io.mifos.individuallending.internal.repository.CaseCustomerDocumentEntity;
@@ -26,11 +25,11 @@
 import io.mifos.individuallending.internal.repository.CaseParametersEntity;
 import io.mifos.individuallending.internal.repository.CaseParametersRepository;
 import io.mifos.portfolio.service.internal.repository.CaseRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import java.util.Comparator;
 import java.util.stream.Stream;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 /**
  * @author Myrle Krantz
@@ -57,7 +56,8 @@
     final CaseParametersEntity caseparametersEntity =
         caseRepository.findByProductIdentifierAndIdentifier(productIdentifier, caseIdentifier)
             .flatMap(x -> caseParametersRepository.findByCaseId(x.getId()))
-            .orElseThrow(() -> ServiceException.notFound("Case ''{0}.{1}'' not found", productIdentifier, caseIdentifier));
+            .orElseThrow(() -> ServiceException
+                .notFound("Case ''{0}.{1}'' not found", productIdentifier, caseIdentifier));
 
     return caseCustomerDocumentsRepository.findByCaseParametersId(caseparametersEntity.getId())
         .sorted(Comparator.comparing(CaseCustomerDocumentEntity::getOrder))
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/DataContextService.java b/service/src/main/java/io/mifos/individuallending/internal/service/DataContextService.java
index 6b868a8..aa57a76 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/DataContextService.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/DataContextService.java
@@ -19,7 +19,6 @@
 package io.mifos.individuallending.internal.service;
 
 import com.google.gson.Gson;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseParameters;
 import io.mifos.individuallending.internal.mapper.CaseParametersMapper;
 import io.mifos.individuallending.internal.repository.CaseParametersEntity;
@@ -32,13 +31,13 @@
 import io.mifos.portfolio.service.internal.repository.CaseRepository;
 import io.mifos.portfolio.service.internal.repository.ProductEntity;
 import io.mifos.portfolio.service.internal.repository.ProductRepository;
+import java.util.List;
+import javax.annotation.Nullable;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Nullable;
-import java.util.List;
-
 /**
  * @author Myrle Krantz
  */
@@ -68,7 +67,8 @@
 
     final ProductEntity product =
         productRepository.findByIdentifier(productIdentifier)
-            .orElseThrow(() -> ServiceException.notFound("Product not found ''{0}''.", productIdentifier));
+            .orElseThrow(() -> ServiceException
+                .notFound("Product not found ''{0}''.", productIdentifier));
     final CaseEntity customerCase =
         caseRepository.findByProductIdentifierAndIdentifier(productIdentifier, caseIdentifier)
             .orElseThrow(() -> ServiceException.notFound("Case not found ''{0}.{1}''.", productIdentifier, caseIdentifier));
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/DesignatorToAccountIdentifierMapper.java b/service/src/main/java/io/mifos/individuallending/internal/service/DesignatorToAccountIdentifierMapper.java
index 9c10cbc..59d5ce0 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/DesignatorToAccountIdentifierMapper.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/DesignatorToAccountIdentifierMapper.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.individuallending.internal.service;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.IndividualLendingPatternFactory;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.portfolio.api.v1.domain.AccountAssignment;
@@ -27,12 +26,16 @@
 import io.mifos.portfolio.service.internal.mapper.ProductMapper;
 import io.mifos.portfolio.service.internal.repository.CaseAccountAssignmentEntity;
 import io.mifos.portfolio.service.internal.repository.ProductAccountAssignmentEntity;
-
-import javax.annotation.Nonnull;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import javax.annotation.Nonnull;
+import org.apache.fineract.cn.lang.ServiceException;
 
 /**
  * @author Myrle Krantz
@@ -99,7 +102,8 @@
 
   public String mapOrThrow(final @Nonnull String accountDesignator) {
     return map(accountDesignator).orElseThrow(() ->
-        ServiceException.badRequest("A required account designator was not set ''{0}''.", accountDesignator));
+        ServiceException
+            .badRequest("A required account designator was not set ''{0}''.", accountDesignator));
   }
 
   @SuppressWarnings("OptionalUsedAsFieldOrParameterType")
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/IndividualLoanService.java b/service/src/main/java/io/mifos/individuallending/internal/service/IndividualLoanService.java
index 24a967f..8aec561 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/IndividualLoanService.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/IndividualLoanService.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.individuallending.internal.service;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.caseinstance.ChargeName;
 import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPayment;
 import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPaymentPage;
@@ -27,17 +26,28 @@
 import io.mifos.individuallending.internal.service.costcomponent.CostComponentService;
 import io.mifos.individuallending.internal.service.costcomponent.PaymentBuilder;
 import io.mifos.individuallending.internal.service.costcomponent.SimulatedRunningBalances;
-import io.mifos.individuallending.internal.service.schedule.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
+import io.mifos.individuallending.internal.service.schedule.Period;
+import io.mifos.individuallending.internal.service.schedule.ScheduledAction;
+import io.mifos.individuallending.internal.service.schedule.ScheduledActionHelpers;
+import io.mifos.individuallending.internal.service.schedule.ScheduledCharge;
+import io.mifos.individuallending.internal.service.schedule.ScheduledChargeComparator;
+import io.mifos.individuallending.internal.service.schedule.ScheduledChargesService;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
 import java.util.stream.Collector;
 import java.util.stream.Collectors;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/LossProvisionStepService.java b/service/src/main/java/io/mifos/individuallending/internal/service/LossProvisionStepService.java
index 512101a..1b8c223 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/LossProvisionStepService.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/LossProvisionStepService.java
@@ -18,17 +18,16 @@
  */
 package io.mifos.individuallending.internal.service;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.product.LossProvisionStep;
 import io.mifos.individuallending.internal.mapper.LossProvisionStepMapper;
 import io.mifos.individuallending.internal.repository.LossProvisionStepRepository;
 import io.mifos.portfolio.service.internal.repository.ProductRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 /**
  * @author Myrle Krantz
@@ -55,7 +54,8 @@
   public List<LossProvisionStep> findByProductIdentifier(
       final String productIdentifier) {
     final Long productId = productRepository.findByIdentifier(productIdentifier)
-        .orElseThrow(() -> ServiceException.notFound("Product ''{}'' doesn''t exist.", productIdentifier))
+        .orElseThrow(() -> ServiceException
+            .notFound("Product ''{}'' doesn''t exist.", productIdentifier))
         .getId();
     return lossProvisionStepRepository.findByProductIdOrderByDaysLateAsc(productId)
         .map(LossProvisionStepMapper::map)
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/ClosePaymentBuilderService.java b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/ClosePaymentBuilderService.java
index 9c6c3dd..ee7d193 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/ClosePaymentBuilderService.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/ClosePaymentBuilderService.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.individuallending.internal.service.costcomponent;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.internal.repository.CaseParametersEntity;
@@ -27,13 +26,13 @@
 import io.mifos.individuallending.internal.service.schedule.ScheduledAction;
 import io.mifos.individuallending.internal.service.schedule.ScheduledCharge;
 import io.mifos.individuallending.internal.service.schedule.ScheduledChargesService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.Collections;
 import java.util.List;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/DisbursePaymentBuilderService.java b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/DisbursePaymentBuilderService.java
index 2f5e7cf..8b47aa9 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/DisbursePaymentBuilderService.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/DisbursePaymentBuilderService.java
@@ -18,22 +18,25 @@
  */
 package io.mifos.individuallending.internal.service.costcomponent;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.internal.repository.CaseParametersEntity;
 import io.mifos.individuallending.internal.service.DataContextOfAction;
-import io.mifos.individuallending.internal.service.schedule.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import io.mifos.individuallending.internal.service.schedule.LossProvisionChargesService;
+import io.mifos.individuallending.internal.service.schedule.ScheduledAction;
+import io.mifos.individuallending.internal.service.schedule.ScheduledActionHelpers;
+import io.mifos.individuallending.internal.service.schedule.ScheduledCharge;
+import io.mifos.individuallending.internal.service.schedule.ScheduledChargesService;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/PaymentBuilder.java b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/PaymentBuilder.java
index 2020b25..4906729 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/PaymentBuilder.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/PaymentBuilder.java
@@ -19,7 +19,6 @@
 package io.mifos.individuallending.internal.service.costcomponent;
 
 import com.google.common.collect.Sets;
-import io.mifos.core.lang.DateConverter;
 import io.mifos.individuallending.IndividualLendingPatternFactory;
 import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPayment;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
@@ -28,13 +27,18 @@
 import io.mifos.portfolio.api.v1.domain.CostComponent;
 import io.mifos.portfolio.api.v1.domain.Payment;
 import io.mifos.portfolio.api.v1.domain.RequiredAccountAssignment;
-
-import javax.annotation.Nullable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import javax.annotation.Nullable;
+import org.apache.fineract.cn.lang.DateConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RealRunningBalances.java b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RealRunningBalances.java
index 41b8e1c..a84d876 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RealRunningBalances.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RealRunningBalances.java
@@ -18,22 +18,21 @@
  */
 package io.mifos.individuallending.internal.service.costcomponent;
 
-import io.mifos.accounting.api.v1.domain.Account;
-import io.mifos.accounting.api.v1.domain.AccountType;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.individuallending.internal.service.DataContextOfAction;
 import io.mifos.individuallending.internal.service.DesignatorToAccountIdentifierMapper;
 import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
 import io.mifos.portfolio.service.internal.util.AccountingAdapter;
-import net.jodah.expiringmap.ExpirationPolicy;
-import net.jodah.expiringmap.ExpiringMap;
-
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
+import net.jodah.expiringmap.ExpirationPolicy;
+import net.jodah.expiringmap.ExpiringMap;
+import org.apache.fineract.cn.accounting.api.v1.domain.Account;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountType;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RunningBalances.java b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RunningBalances.java
index dff7890..48d604d 100644
--- a/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RunningBalances.java
+++ b/service/src/main/java/io/mifos/individuallending/internal/service/costcomponent/RunningBalances.java
@@ -18,17 +18,16 @@
  */
 package io.mifos.individuallending.internal.service.costcomponent;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.IndividualLendingPatternFactory;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.individuallending.internal.service.DataContextOfAction;
 import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
 import io.mifos.portfolio.api.v1.domain.Pattern;
 import io.mifos.portfolio.api.v1.domain.RequiredAccountAssignment;
-
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Optional;
+import org.apache.fineract.cn.lang.ServiceException;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/rest/BeatPublishListenerRestController.java b/service/src/main/java/io/mifos/individuallending/rest/BeatPublishListenerRestController.java
index 00117df..2b08b34 100644
--- a/service/src/main/java/io/mifos/individuallending/rest/BeatPublishListenerRestController.java
+++ b/service/src/main/java/io/mifos/individuallending/rest/BeatPublishListenerRestController.java
@@ -18,19 +18,22 @@
  */
 package io.mifos.individuallending.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.command.gateway.CommandGateway;
 import io.mifos.portfolio.service.internal.command.CreateBeatPublishCommand;
-import io.mifos.rhythm.spi.v1.client.BeatListener;
-import io.mifos.rhythm.spi.v1.domain.BeatPublish;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.rhythm.spi.v1.client.BeatListener;
+import org.apache.fineract.cn.rhythm.spi.v1.domain.BeatPublish;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/rest/CaseDocumentsRestController.java b/service/src/main/java/io/mifos/individuallending/rest/CaseDocumentsRestController.java
index aa25897..0cb6639 100644
--- a/service/src/main/java/io/mifos/individuallending/rest/CaseDocumentsRestController.java
+++ b/service/src/main/java/io/mifos/individuallending/rest/CaseDocumentsRestController.java
@@ -18,23 +18,27 @@
  */
 package io.mifos.individuallending.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.caseinstance.CaseCustomerDocuments;
 import io.mifos.individuallending.internal.command.ChangeCaseDocuments;
 import io.mifos.individuallending.internal.service.CaseDocumentsService;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.service.internal.service.CaseService;
+import java.util.List;
+import java.util.stream.Collectors;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.stream.Collectors;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("/individuallending/products/{productidentifier}/cases/{caseidentifier}/documents")
@@ -94,6 +98,7 @@
   private void throwIfCaseDoesntExist(final String productIdentifier, final String caseIdentifier) throws ServiceException {
     //noinspection unused
     Case x = caseService.findByIdentifier(productIdentifier, caseIdentifier)
-        .orElseThrow(() -> ServiceException.notFound("Case ''{0}.{1}'' does not exist.", productIdentifier, caseIdentifier));
+        .orElseThrow(() -> ServiceException
+            .notFound("Case ''{0}.{1}'' does not exist.", productIdentifier, caseIdentifier));
   }
 }
diff --git a/service/src/main/java/io/mifos/individuallending/rest/IndividualLendingRestController.java b/service/src/main/java/io/mifos/individuallending/rest/IndividualLendingRestController.java
index 6a14d16..3e62e38 100644
--- a/service/src/main/java/io/mifos/individuallending/rest/IndividualLendingRestController.java
+++ b/service/src/main/java/io/mifos/individuallending/rest/IndividualLendingRestController.java
@@ -18,14 +18,19 @@
  */
 package io.mifos.individuallending.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
 import io.mifos.individuallending.internal.service.CaseParametersService;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.CasePage;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/rest/LossProvisionStepRestController.java b/service/src/main/java/io/mifos/individuallending/rest/LossProvisionStepRestController.java
index e21987e..b35323a 100644
--- a/service/src/main/java/io/mifos/individuallending/rest/LossProvisionStepRestController.java
+++ b/service/src/main/java/io/mifos/individuallending/rest/LossProvisionStepRestController.java
@@ -18,22 +18,26 @@
  */
 package io.mifos.individuallending.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.product.LossProvisionConfiguration;
 import io.mifos.individuallending.internal.command.ChangeLossProvisionSteps;
 import io.mifos.individuallending.internal.service.LossProvisionStepService;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.service.internal.service.ProductService;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/individuallending/rest/PlannedPaymentsRestController.java b/service/src/main/java/io/mifos/individuallending/rest/PlannedPaymentsRestController.java
index f96b12f..2555df2 100644
--- a/service/src/main/java/io/mifos/individuallending/rest/PlannedPaymentsRestController.java
+++ b/service/src/main/java/io/mifos/individuallending/rest/PlannedPaymentsRestController.java
@@ -19,22 +19,27 @@
 package io.mifos.individuallending.rest;
 
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.lang.DateConverter;
 import io.mifos.individuallending.api.v1.domain.caseinstance.PlannedPaymentPage;
 import io.mifos.individuallending.internal.service.DataContextOfAction;
 import io.mifos.individuallending.internal.service.DataContextService;
 import io.mifos.individuallending.internal.service.IndividualLoanService;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.Case;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
 import java.time.LocalDate;
 import java.util.Collections;
 import java.util.Optional;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/config/PortfolioProperties.java b/service/src/main/java/io/mifos/portfolio/service/config/PortfolioProperties.java
index 41895f0..85c4f62 100644
--- a/service/src/main/java/io/mifos/portfolio/service/config/PortfolioProperties.java
+++ b/service/src/main/java/io/mifos/portfolio/service/config/PortfolioProperties.java
@@ -18,7 +18,7 @@
  */
 package io.mifos.portfolio.service.config;
 
-import io.mifos.core.lang.validation.constraints.ValidIdentifier;
+import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
 import org.hibernate.validator.constraints.Range;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
diff --git a/service/src/main/java/io/mifos/portfolio/service/config/PortfolioServiceConfiguration.java b/service/src/main/java/io/mifos/portfolio/service/config/PortfolioServiceConfiguration.java
index 0a48174..9fff23a 100644
--- a/service/src/main/java/io/mifos/portfolio/service/config/PortfolioServiceConfiguration.java
+++ b/service/src/main/java/io/mifos/portfolio/service/config/PortfolioServiceConfiguration.java
@@ -19,19 +19,19 @@
 package io.mifos.portfolio.service.config;
 
 import com.google.gson.Gson;
-import io.mifos.accounting.api.v1.client.LedgerManager;
-import io.mifos.anubis.config.EnableAnubis;
-import io.mifos.core.async.config.EnableAsync;
-import io.mifos.core.cassandra.config.EnableCassandra;
-import io.mifos.core.command.config.EnableCommandProcessing;
-import io.mifos.core.lang.config.EnableApplicationName;
-import io.mifos.core.lang.config.EnableServiceException;
-import io.mifos.core.lang.config.EnableTenantContext;
-import io.mifos.core.mariadb.config.EnableMariaDB;
-import io.mifos.customer.api.v1.client.CustomerManager;
 import io.mifos.individuallending.IndividualLendingConfiguration;
 import io.mifos.portfolio.service.ServiceConstants;
-import io.mifos.rhythm.api.v1.client.RhythmManager;
+import org.apache.fineract.cn.accounting.api.v1.client.LedgerManager;
+import org.apache.fineract.cn.anubis.config.EnableAnubis;
+import org.apache.fineract.cn.async.config.EnableAsync;
+import org.apache.fineract.cn.cassandra.config.EnableCassandra;
+import org.apache.fineract.cn.command.config.EnableCommandProcessing;
+import org.apache.fineract.cn.customer.api.v1.client.CustomerManager;
+import org.apache.fineract.cn.lang.config.EnableApplicationName;
+import org.apache.fineract.cn.lang.config.EnableServiceException;
+import org.apache.fineract.cn.lang.config.EnableTenantContext;
+import org.apache.fineract.cn.mariadb.config.EnableMariaDB;
+import org.apache.fineract.cn.rhythm.api.v1.client.RhythmManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/checker/CaseChecker.java b/service/src/main/java/io/mifos/portfolio/service/internal/checker/CaseChecker.java
index 602b5d2..1e52255 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/checker/CaseChecker.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/checker/CaseChecker.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.checker;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.domain.InterestRange;
 import io.mifos.portfolio.api.v1.domain.Product;
@@ -28,11 +27,11 @@
 import io.mifos.portfolio.service.internal.service.CaseService;
 import io.mifos.portfolio.service.internal.service.ProductService;
 import io.mifos.products.spi.PatternFactory;
+import java.math.BigDecimal;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.math.BigDecimal;
-
 /**
  * @author Myrle Krantz
  */
@@ -56,7 +55,8 @@
 
   public void checkForCreate(final String productIdentifier, final Case instance) {
     caseService.findByIdentifier(productIdentifier, instance.getIdentifier())
-        .ifPresent(x -> {throw ServiceException.conflict("Duplicate identifier: " + productIdentifier + "." + x.getIdentifier());});
+        .ifPresent(x -> {throw ServiceException
+            .conflict("Duplicate identifier: " + productIdentifier + "." + x.getIdentifier());});
 
     final Product product = productService.findByIdentifier(productIdentifier)
         .orElseThrow(() -> ServiceException.badRequest("Product must exist ''{0}''.", productIdentifier));
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/CreateBeatPublishCommand.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/CreateBeatPublishCommand.java
index f08314f..5d5fcc0 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/CreateBeatPublishCommand.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/CreateBeatPublishCommand.java
@@ -18,7 +18,7 @@
  */
 package io.mifos.portfolio.service.internal.command;
 
-import io.mifos.rhythm.spi.v1.domain.BeatPublish;
+import org.apache.fineract.cn.rhythm.spi.v1.domain.BeatPublish;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/BalanceSegmentSetCommandHandler.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/BalanceSegmentSetCommandHandler.java
index ef0e3c6..0f2ce1b 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/BalanceSegmentSetCommandHandler.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/BalanceSegmentSetCommandHandler.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.events.BalanceSegmentSetEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.service.internal.command.ChangeBalanceSegmentSetCommand;
@@ -33,11 +28,15 @@
 import io.mifos.portfolio.service.internal.repository.BalanceSegmentRepository;
 import io.mifos.portfolio.service.internal.repository.ProductEntity;
 import io.mifos.portfolio.service.internal.repository.ProductRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
 import java.util.List;
 import java.util.stream.Collectors;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/CaseCommandHandler.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/CaseCommandHandler.java
index 31487ae..da8b4e7 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/CaseCommandHandler.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/CaseCommandHandler.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.events.CaseEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
@@ -30,13 +25,23 @@
 import io.mifos.portfolio.service.internal.command.CreateCaseCommand;
 import io.mifos.portfolio.service.internal.mapper.CaseMapper;
 import io.mifos.portfolio.service.internal.pattern.PatternFactoryRegistry;
-import io.mifos.portfolio.service.internal.repository.*;
+import io.mifos.portfolio.service.internal.repository.CaseEntity;
+import io.mifos.portfolio.service.internal.repository.CaseRepository;
+import io.mifos.portfolio.service.internal.repository.ProductEntity;
+import io.mifos.portfolio.service.internal.repository.ProductRepository;
+import io.mifos.portfolio.service.internal.repository.TaskDefinitionEntity;
+import io.mifos.portfolio.service.internal.repository.TaskDefinitionRepository;
+import io.mifos.portfolio.service.internal.repository.TaskInstanceEntity;
 import io.mifos.products.spi.PatternFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author Myrle Krantz
@@ -98,7 +103,8 @@
 
     final CaseEntity oldEntity = caseRepository
             .findByProductIdentifierAndIdentifier(instance.getProductIdentifier(), instance.getIdentifier())
-            .orElseThrow(() -> ServiceException.notFound("Case not found '" + instance.getIdentifier() + "'."));
+            .orElseThrow(() -> ServiceException
+                .notFound("Case not found '" + instance.getIdentifier() + "'."));
 
     final CaseEntity newEntity = CaseMapper.mapOverOldEntity(instance, oldEntity);
 
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandler.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandler.java
index fa5dc6e..104be34 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandler.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandler.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
 import io.mifos.portfolio.api.v1.events.ChargeDefinitionEvent;
 import io.mifos.portfolio.api.v1.events.EventConstants;
@@ -30,12 +25,21 @@
 import io.mifos.portfolio.service.internal.command.CreateChargeDefinitionCommand;
 import io.mifos.portfolio.service.internal.command.DeleteProductChargeDefinitionCommand;
 import io.mifos.portfolio.service.internal.mapper.ChargeDefinitionMapper;
-import io.mifos.portfolio.service.internal.repository.*;
+import io.mifos.portfolio.service.internal.repository.BalanceSegmentEntity;
+import io.mifos.portfolio.service.internal.repository.BalanceSegmentRepository;
+import io.mifos.portfolio.service.internal.repository.ChargeDefinitionEntity;
+import io.mifos.portfolio.service.internal.repository.ChargeDefinitionRepository;
+import io.mifos.portfolio.service.internal.repository.ProductEntity;
+import io.mifos.portfolio.service.internal.repository.ProductRepository;
+import java.util.Optional;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Optional;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/InitializeCommandHandler.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/InitializeCommandHandler.java
index 3996985..fc976ea 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/InitializeCommandHandler.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/InitializeCommandHandler.java
@@ -18,19 +18,18 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.mariadb.domain.FlywayFactoryBean;
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.service.internal.command.InitializeServiceCommand;
 import io.mifos.portfolio.service.internal.util.RhythmAdapter;
+import javax.sql.DataSource;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.mariadb.domain.FlywayFactoryBean;
 import org.flywaydb.core.Flyway;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import javax.sql.DataSource;
-
 @SuppressWarnings({
     "unused"
 })
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandler.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandler.java
index 27e08c2..f5b29a0 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandler.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandler.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.portfolio.api.v1.domain.AccountAssignment;
 import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
@@ -35,18 +30,27 @@
 import io.mifos.portfolio.service.internal.mapper.ChargeDefinitionMapper;
 import io.mifos.portfolio.service.internal.mapper.ProductMapper;
 import io.mifos.portfolio.service.internal.pattern.PatternFactoryRegistry;
-import io.mifos.portfolio.service.internal.repository.*;
+import io.mifos.portfolio.service.internal.repository.CaseRepository;
+import io.mifos.portfolio.service.internal.repository.ChargeDefinitionEntity;
+import io.mifos.portfolio.service.internal.repository.ChargeDefinitionRepository;
+import io.mifos.portfolio.service.internal.repository.ProductAccountAssignmentEntity;
+import io.mifos.portfolio.service.internal.repository.ProductEntity;
+import io.mifos.portfolio.service.internal.repository.ProductRepository;
 import io.mifos.portfolio.service.internal.util.AccountingAdapter;
 import io.mifos.products.spi.PatternFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author Myrle Krantz
@@ -103,7 +107,8 @@
     final Product instance = changeProductCommand.getInstance();
 
     if (caseRepository.existsByProductIdentifier(instance.getIdentifier()))
-      throw ServiceException.conflict("Cases exist for product with the identifier '" + instance.getIdentifier() + "'. Product cannot be changed.");
+      throw ServiceException
+          .conflict("Cases exist for product with the identifier '" + instance.getIdentifier() + "'. Product cannot be changed.");
 
     final ProductEntity oldEntity = productRepository
             .findByIdentifier(instance.getIdentifier())
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskDefinitionCommandHandler.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskDefinitionCommandHandler.java
index 03af496..dd04a0a 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskDefinitionCommandHandler.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskDefinitionCommandHandler.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.command.annotation.CommandLogLevel;
 import io.mifos.portfolio.api.v1.domain.TaskDefinition;
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.api.v1.events.TaskDefinitionEvent;
@@ -30,10 +29,11 @@
 import io.mifos.portfolio.service.internal.repository.ProductRepository;
 import io.mifos.portfolio.service.internal.repository.TaskDefinitionEntity;
 import io.mifos.portfolio.service.internal.repository.TaskDefinitionRepository;
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskInstanceCommandHandler.java b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskInstanceCommandHandler.java
index 8c491d3..ee5a75f 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskInstanceCommandHandler.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/command/handler/TaskInstanceCommandHandler.java
@@ -18,12 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.command.annotation.Aggregate;
-import io.mifos.core.command.annotation.CommandHandler;
-import io.mifos.core.command.annotation.CommandLogLevel;
-import io.mifos.core.command.annotation.EventEmitter;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.domain.TaskInstance;
 import io.mifos.portfolio.api.v1.events.EventConstants;
 import io.mifos.portfolio.api.v1.events.TaskInstanceEvent;
@@ -32,10 +26,15 @@
 import io.mifos.portfolio.service.internal.mapper.TaskInstanceMapper;
 import io.mifos.portfolio.service.internal.repository.TaskInstanceEntity;
 import io.mifos.portfolio.service.internal.repository.TaskInstanceRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-
 import java.time.Clock;
 import java.time.LocalDateTime;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.command.annotation.Aggregate;
+import org.apache.fineract.cn.command.annotation.CommandHandler;
+import org.apache.fineract.cn.command.annotation.CommandLogLevel;
+import org.apache.fineract.cn.command.annotation.EventEmitter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/mapper/CaseMapper.java b/service/src/main/java/io/mifos/portfolio/service/internal/mapper/CaseMapper.java
index 2903c84..597f73b 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/mapper/CaseMapper.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/mapper/CaseMapper.java
@@ -18,19 +18,18 @@
  */
 package io.mifos.portfolio.service.internal.mapper;
 
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.lang.DateConverter;
 import io.mifos.portfolio.api.v1.domain.AccountAssignment;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.domain.CaseStatus;
 import io.mifos.portfolio.service.internal.repository.CaseAccountAssignmentEntity;
 import io.mifos.portfolio.service.internal.repository.CaseEntity;
-
 import java.time.Clock;
 import java.time.LocalDateTime;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.lang.DateConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/mapper/ProductMapper.java b/service/src/main/java/io/mifos/portfolio/service/internal/mapper/ProductMapper.java
index 62e442b..9eb9c65 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/mapper/ProductMapper.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/mapper/ProductMapper.java
@@ -18,13 +18,14 @@
  */
 package io.mifos.portfolio.service.internal.mapper;
 
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.lang.DateConverter;
-import io.mifos.portfolio.api.v1.domain.*;
+import io.mifos.portfolio.api.v1.domain.AccountAssignment;
+import io.mifos.portfolio.api.v1.domain.BalanceRange;
+import io.mifos.portfolio.api.v1.domain.InterestRange;
+import io.mifos.portfolio.api.v1.domain.Product;
+import io.mifos.portfolio.api.v1.domain.TermRange;
 import io.mifos.portfolio.service.internal.repository.ProductAccountAssignmentEntity;
 import io.mifos.portfolio.service.internal.repository.ProductEntity;
 import io.mifos.portfolio.service.internal.util.AccountingAdapter;
-
 import java.math.BigDecimal;
 import java.time.Clock;
 import java.time.LocalDateTime;
@@ -32,6 +33,8 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.lang.DateConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/mapper/TaskInstanceMapper.java b/service/src/main/java/io/mifos/portfolio/service/internal/mapper/TaskInstanceMapper.java
index af92416..147f8e4 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/mapper/TaskInstanceMapper.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/mapper/TaskInstanceMapper.java
@@ -18,9 +18,9 @@
  */
 package io.mifos.portfolio.service.internal.mapper;
 
-import io.mifos.core.lang.DateConverter;
 import io.mifos.portfolio.api.v1.domain.TaskInstance;
 import io.mifos.portfolio.service.internal.repository.TaskInstanceEntity;
+import org.apache.fineract.cn.lang.DateConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseCommandEntity.java b/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseCommandEntity.java
index 21d5593..43c67d4 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseCommandEntity.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseCommandEntity.java
@@ -18,11 +18,16 @@
  */
 package io.mifos.portfolio.service.internal.repository;
 
-import io.mifos.core.mariadb.util.LocalDateTimeConverter;
-
-import javax.persistence.*;
 import java.time.LocalDateTime;
 import java.util.Objects;
+import javax.persistence.Column;
+import javax.persistence.Convert;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseEntity.java b/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseEntity.java
index 5d2366f..32f46be 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseEntity.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/repository/CaseEntity.java
@@ -18,14 +18,21 @@
  */
 package io.mifos.portfolio.service.internal.repository;
 
-import io.mifos.core.mariadb.util.LocalDateTimeConverter;
-
-import javax.annotation.Nullable;
-import javax.persistence.*;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Objects;
 import java.util.Set;
+import javax.annotation.Nullable;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Convert;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/repository/ProductEntity.java b/service/src/main/java/io/mifos/portfolio/service/internal/repository/ProductEntity.java
index e8504ef..0629d50 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/repository/ProductEntity.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/repository/ProductEntity.java
@@ -18,15 +18,24 @@
  */
 package io.mifos.portfolio.service.internal.repository;
 
-import io.mifos.core.mariadb.util.LocalDateTimeConverter;
 import io.mifos.portfolio.api.v1.domain.InterestBasis;
-
-import javax.persistence.*;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 import java.util.Objects;
 import java.util.Set;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Convert;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/repository/TaskInstanceEntity.java b/service/src/main/java/io/mifos/portfolio/service/internal/repository/TaskInstanceEntity.java
index af321ac..ceaeb48 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/repository/TaskInstanceEntity.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/repository/TaskInstanceEntity.java
@@ -18,11 +18,19 @@
  */
 package io.mifos.portfolio.service.internal.repository;
 
-import io.mifos.core.mariadb.util.LocalDateTimeConverter;
-
-import javax.persistence.*;
 import java.time.LocalDateTime;
 import java.util.Objects;
+import javax.persistence.Column;
+import javax.persistence.Convert;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/service/CaseService.java b/service/src/main/java/io/mifos/portfolio/service/internal/service/CaseService.java
index 149ed34..0031097 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/service/CaseService.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/service/CaseService.java
@@ -18,7 +18,6 @@
  */
 package io.mifos.portfolio.service.internal.service;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.domain.CasePage;
 import io.mifos.portfolio.api.v1.domain.CaseStatus;
@@ -31,13 +30,6 @@
 import io.mifos.portfolio.service.internal.repository.ProductRepository;
 import io.mifos.products.spi.PatternFactory;
 import io.mifos.products.spi.ProductCommandDispatcher;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
-import org.springframework.stereotype.Service;
-
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Arrays;
@@ -46,6 +38,13 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Service;
 
 /**
  * @author Myrle Krantz
@@ -110,7 +109,8 @@
 
     return caseRepository.findByProductIdentifierAndIdentifier(productIdentifier, caseIdentifier)
             .map(x -> pattern.getNextActionsForState(Case.State.valueOf(x.getCurrentState())))
-            .orElseThrow(() -> ServiceException.notFound("Case with identifier ''" + productIdentifier + "." + caseIdentifier + "'' doesn''t exist."));
+            .orElseThrow(() -> ServiceException
+                .notFound("Case with identifier ''" + productIdentifier + "." + caseIdentifier + "'' doesn''t exist."));
   }
 
   public ProductCommandDispatcher getProductCommandDispatcher(final String productIdentifier) {
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingAdapter.java b/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingAdapter.java
index 05aeafc..97365ed 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingAdapter.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingAdapter.java
@@ -18,35 +18,51 @@
  */
 package io.mifos.portfolio.service.internal.util;
 
+import static io.mifos.individuallending.api.v1.domain.product.AccountDesignators.ENTRY;
+
 import com.google.common.collect.Sets;
-import io.mifos.accounting.api.v1.client.*;
-import io.mifos.accounting.api.v1.domain.*;
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.lang.DateRange;
-import io.mifos.core.lang.ServiceException;
-import io.mifos.core.lang.listening.EventExpectation;
 import io.mifos.individuallending.internal.service.DesignatorToAccountIdentifierMapper;
 import io.mifos.portfolio.api.v1.domain.AccountAssignment;
 import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
 import io.mifos.portfolio.service.ServiceConstants;
-import org.apache.commons.lang.RandomStringUtils;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.*;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
-
-import static io.mifos.individuallending.api.v1.domain.product.AccountDesignators.ENTRY;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.fineract.cn.accounting.api.v1.client.AccountAlreadyExistsException;
+import org.apache.fineract.cn.accounting.api.v1.client.AccountNotFoundException;
+import org.apache.fineract.cn.accounting.api.v1.client.JournalEntryAlreadyExistsException;
+import org.apache.fineract.cn.accounting.api.v1.client.LedgerAlreadyExistsException;
+import org.apache.fineract.cn.accounting.api.v1.client.LedgerManager;
+import org.apache.fineract.cn.accounting.api.v1.client.LedgerNotFoundException;
+import org.apache.fineract.cn.accounting.api.v1.domain.Account;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountEntry;
+import org.apache.fineract.cn.accounting.api.v1.domain.AccountPage;
+import org.apache.fineract.cn.accounting.api.v1.domain.Creditor;
+import org.apache.fineract.cn.accounting.api.v1.domain.Debtor;
+import org.apache.fineract.cn.accounting.api.v1.domain.JournalEntry;
+import org.apache.fineract.cn.accounting.api.v1.domain.Ledger;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.lang.DateRange;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.apache.fineract.cn.lang.listening.EventExpectation;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingListener.java b/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingListener.java
index f780bed..dc834c2 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingListener.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/util/AccountingListener.java
@@ -18,12 +18,12 @@
  */
 package io.mifos.portfolio.service.internal.util;
 
-import io.mifos.accounting.api.v1.EventConstants;
-import io.mifos.core.lang.TenantContextHolder;
-import io.mifos.core.lang.config.TenantHeaderFilter;
-import io.mifos.core.lang.listening.EventExpectation;
-import io.mifos.core.lang.listening.EventKey;
-import io.mifos.core.lang.listening.TenantedEventListener;
+import org.apache.fineract.cn.accounting.api.v1.EventConstants;
+import org.apache.fineract.cn.lang.TenantContextHolder;
+import org.apache.fineract.cn.lang.config.TenantHeaderFilter;
+import org.apache.fineract.cn.lang.listening.EventExpectation;
+import org.apache.fineract.cn.lang.listening.EventKey;
+import org.apache.fineract.cn.lang.listening.TenantedEventListener;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.messaging.handler.annotation.Header;
 import org.springframework.stereotype.Component;
diff --git a/service/src/main/java/io/mifos/portfolio/service/internal/util/RhythmAdapter.java b/service/src/main/java/io/mifos/portfolio/service/internal/util/RhythmAdapter.java
index 8861f95..74d9c2d 100644
--- a/service/src/main/java/io/mifos/portfolio/service/internal/util/RhythmAdapter.java
+++ b/service/src/main/java/io/mifos/portfolio/service/internal/util/RhythmAdapter.java
@@ -18,17 +18,16 @@
  */
 package io.mifos.portfolio.service.internal.util;
 
-import io.mifos.core.lang.ApplicationName;
 import io.mifos.portfolio.service.ServiceConstants;
-import io.mifos.rhythm.api.v1.client.RhythmManager;
-import io.mifos.rhythm.api.v1.domain.Beat;
+import java.util.stream.Stream;
+import org.apache.fineract.cn.lang.ApplicationName;
+import org.apache.fineract.cn.rhythm.api.v1.client.RhythmManager;
+import org.apache.fineract.cn.rhythm.api.v1.domain.Beat;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
-import java.util.stream.Stream;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/BalanceSegmentSetRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/BalanceSegmentSetRestController.java
index c02bb42..c214e6c 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/BalanceSegmentSetRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/BalanceSegmentSetRestController.java
@@ -18,10 +18,6 @@
  */
 package io.mifos.portfolio.service.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.BalanceSegmentSet;
 import io.mifos.portfolio.service.internal.command.ChangeBalanceSegmentSetCommand;
@@ -30,13 +26,21 @@
 import io.mifos.portfolio.service.internal.service.BalanceSegmentSetService;
 import io.mifos.portfolio.service.internal.service.CaseService;
 import io.mifos.portfolio.service.internal.service.ProductService;
+import java.util.List;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.util.List;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/CaseRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/CaseRestController.java
index d29aabd..e4bf72a 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/CaseRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/CaseRestController.java
@@ -18,16 +18,14 @@
  */
 package io.mifos.portfolio.service.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.DateConverter;
-import io.mifos.core.lang.ServiceException;
-import io.mifos.core.lang.validation.constraints.ValidLocalDateTimeString;
 import io.mifos.individuallending.api.v1.domain.workflow.Action;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
-import io.mifos.portfolio.api.v1.domain.*;
+import io.mifos.portfolio.api.v1.domain.Case;
+import io.mifos.portfolio.api.v1.domain.CasePage;
+import io.mifos.portfolio.api.v1.domain.CaseStatus;
+import io.mifos.portfolio.api.v1.domain.Command;
+import io.mifos.portfolio.api.v1.domain.ImportParameters;
+import io.mifos.portfolio.api.v1.domain.Payment;
 import io.mifos.portfolio.service.internal.checker.CaseChecker;
 import io.mifos.portfolio.service.internal.command.ChangeCaseCommand;
 import io.mifos.portfolio.service.internal.command.CreateCaseCommand;
@@ -35,18 +33,30 @@
 import io.mifos.portfolio.service.internal.service.ProductService;
 import io.mifos.portfolio.service.internal.service.TaskInstanceService;
 import io.mifos.products.spi.ProductCommandDispatcher;
+import java.math.BigDecimal;
+import java.time.Clock;
+import java.time.LocalDateTime;
+import java.util.Set;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.DateConverter;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.apache.fineract.cn.lang.validation.constraints.ValidLocalDateTimeString;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.math.BigDecimal;
-import java.time.Clock;
-import java.time.LocalDateTime;
-import java.util.Set;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
@@ -221,7 +231,8 @@
     if (forPaymentSize != null && forPaymentSize.compareTo(BigDecimal.ZERO) < 0)
       throw ServiceException.badRequest("forpaymentsize can''t be negative.");
 
-    final LocalDateTime forDateTime = StringUtils.isEmpty(forDateTimeString) ? LocalDateTime.now(Clock.systemUTC()) : DateConverter.fromIsoString(forDateTimeString);
+    final LocalDateTime forDateTime = StringUtils.isEmpty(forDateTimeString) ? LocalDateTime.now(Clock.systemUTC()) : DateConverter
+        .fromIsoString(forDateTimeString);
 
     return caseService.getActionCostComponentsForCase(
         productIdentifier,
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/ChargeDefinitionRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/ChargeDefinitionRestController.java
index 4e59ab2..f1b0ff9 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/ChargeDefinitionRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/ChargeDefinitionRestController.java
@@ -19,8 +19,6 @@
 package io.mifos.portfolio.service.rest;
 
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.ChargeDefinition;
 import io.mifos.portfolio.service.internal.command.ChangeChargeDefinitionCommand;
@@ -28,17 +26,23 @@
 import io.mifos.portfolio.service.internal.command.DeleteProductChargeDefinitionCommand;
 import io.mifos.portfolio.service.internal.service.ConfigurableChargeDefinitionService;
 import io.mifos.portfolio.service.internal.service.ProductService;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
+import java.util.List;
+import java.util.stream.Collectors;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.util.List;
-import java.util.stream.Collectors;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/InitializeRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/InitializeRestController.java
index ede9eff..245cffa 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/InitializeRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/InitializeRestController.java
@@ -18,10 +18,10 @@
  */
 package io.mifos.portfolio.service.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
 import io.mifos.portfolio.service.internal.command.InitializeServiceCommand;
-import io.mifos.core.command.gateway.CommandGateway;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/PatternRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/PatternRestController.java
index 72d2a9d..6a06f63 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/PatternRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/PatternRestController.java
@@ -18,11 +18,12 @@
  */
 package io.mifos.portfolio.service.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.Pattern;
 import io.mifos.portfolio.service.internal.service.PatternService;
+import java.util.List;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -30,8 +31,6 @@
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-
 @SuppressWarnings("unused")
 @RestController
 @RequestMapping("/patterns")
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/ProductRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/ProductRestController.java
index db88115..b801775 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/ProductRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/ProductRestController.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.portfolio.service.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.AccountAssignment;
 import io.mifos.portfolio.api.v1.domain.Pattern;
@@ -38,17 +33,27 @@
 import io.mifos.portfolio.service.internal.service.CaseService;
 import io.mifos.portfolio.service.internal.service.PatternService;
 import io.mifos.portfolio.service.internal.service.ProductService;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import javax.annotation.Nullable;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Nullable;
-import javax.validation.Valid;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
@@ -86,7 +91,8 @@
                           @RequestParam(value = "sortColumn", required = false) final String sortColumn,
                           @RequestParam(value = "sortDirection", required = false) final @Valid @ValidSortDirection String sortDirection) {
     if (!CheckValidSortColumn.validate(sortColumn, VALID_SORT_COLUMNS))
-      throw ServiceException.badRequest("Invalid sort column ''{0}''.  Valid inputs are ''{1}''.", sortColumn, VALID_SORT_COLUMNS);
+      throw ServiceException
+          .badRequest("Invalid sort column ''{0}''.  Valid inputs are ''{1}''.", sortColumn, VALID_SORT_COLUMNS);
     if (!CheckValidSortDirection.validate(sortDirection))
       throw ServiceException.badRequest("Invalid sort direction ''{0}''.", sortDirection);
     return this.productService.findEntities(includeDisabled, term, pageIndex, size, sortColumn, sortDirection);
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/TaskDefinitionRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/TaskDefinitionRestController.java
index 7291978..d7d44e5 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/TaskDefinitionRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/TaskDefinitionRestController.java
@@ -18,10 +18,6 @@
  */
 package io.mifos.portfolio.service.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.TaskDefinition;
 import io.mifos.portfolio.service.internal.command.ChangeTaskDefinitionCommand;
@@ -30,14 +26,22 @@
 import io.mifos.portfolio.service.internal.service.CaseService;
 import io.mifos.portfolio.service.internal.service.ProductService;
 import io.mifos.portfolio.service.internal.service.TaskDefinitionService;
+import java.util.List;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.util.List;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/main/java/io/mifos/portfolio/service/rest/TaskInstanceRestController.java b/service/src/main/java/io/mifos/portfolio/service/rest/TaskInstanceRestController.java
index 91d5c7c..89c67c3 100644
--- a/service/src/main/java/io/mifos/portfolio/service/rest/TaskInstanceRestController.java
+++ b/service/src/main/java/io/mifos/portfolio/service/rest/TaskInstanceRestController.java
@@ -18,11 +18,6 @@
  */
 package io.mifos.portfolio.service.rest;
 
-import io.mifos.anubis.annotation.AcceptedTokenType;
-import io.mifos.anubis.annotation.Permittable;
-import io.mifos.core.api.util.UserContextHolder;
-import io.mifos.core.command.gateway.CommandGateway;
-import io.mifos.core.lang.ServiceException;
 import io.mifos.portfolio.api.v1.PermittableGroupIds;
 import io.mifos.portfolio.api.v1.domain.Case;
 import io.mifos.portfolio.api.v1.domain.TaskDefinition;
@@ -32,13 +27,23 @@
 import io.mifos.portfolio.service.internal.service.CaseService;
 import io.mifos.portfolio.service.internal.service.TaskDefinitionService;
 import io.mifos.portfolio.service.internal.service.TaskInstanceService;
+import java.util.List;
+import javax.validation.Valid;
+import org.apache.fineract.cn.anubis.annotation.AcceptedTokenType;
+import org.apache.fineract.cn.anubis.annotation.Permittable;
+import org.apache.fineract.cn.api.util.UserContextHolder;
+import org.apache.fineract.cn.command.gateway.CommandGateway;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.util.List;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Myrle Krantz
@@ -153,7 +158,8 @@
   private TaskDefinition checkedGetTaskDefinition(final String productIdentifier,
                                                   final String taskDefinitionIdentifier) throws ServiceException {
     return taskDefinitionService.findByIdentifier(productIdentifier, taskDefinitionIdentifier)
-        .orElseThrow(() -> ServiceException.notFound("No task with the identifier ''{0}.{1}'' exists.", productIdentifier, taskDefinitionIdentifier));
+        .orElseThrow(() -> ServiceException
+            .notFound("No task with the identifier ''{0}.{1}'' exists.", productIdentifier, taskDefinitionIdentifier));
   }
 
   private Case checkedGetCase(final String productIdentifier, final String caseIdentifier) throws ServiceException {
diff --git a/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandlerTest.java b/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandlerTest.java
index c947d52..279c065 100644
--- a/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandlerTest.java
+++ b/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ChargeDefinitionCommandHandlerTest.java
@@ -21,13 +21,12 @@
 import io.mifos.portfolio.service.internal.command.DeleteProductChargeDefinitionCommand;
 import io.mifos.portfolio.service.internal.repository.BalanceSegmentRepository;
 import io.mifos.portfolio.service.internal.repository.ChargeDefinitionRepository;
-import io.mifos.core.lang.ServiceException;
+import java.util.Optional;
+import org.apache.fineract.cn.lang.ServiceException;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.Mockito;
 
-import java.util.Optional;
-
 /**
  * @author Myrle Krantz
  */
diff --git a/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandlerTest.java b/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandlerTest.java
index 0d607cd..1a81201 100644
--- a/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandlerTest.java
+++ b/service/src/test/java/io/mifos/portfolio/service/internal/command/handler/ProductCommandHandlerTest.java
@@ -18,19 +18,18 @@
  */
 package io.mifos.portfolio.service.internal.command.handler;
 
-import io.mifos.core.lang.ServiceException;
 import io.mifos.individuallending.api.v1.domain.product.AccountDesignators;
 import io.mifos.portfolio.service.internal.repository.ProductAccountAssignmentEntity;
 import io.mifos.portfolio.service.internal.repository.ProductEntity;
 import io.mifos.portfolio.service.internal.util.AccountingAdapter;
-import org.junit.Assert;
-import org.junit.Test;
-import org.mockito.Mockito;
-
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import org.apache.fineract.cn.lang.ServiceException;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
 
 /**
  * @author Myrle Krantz
diff --git a/service/src/test/java/io/mifos/portfolio/service/internal/util/AccountingAdapterTest.java b/service/src/test/java/io/mifos/portfolio/service/internal/util/AccountingAdapterTest.java
index 8e88960..6454878 100644
--- a/service/src/test/java/io/mifos/portfolio/service/internal/util/AccountingAdapterTest.java
+++ b/service/src/test/java/io/mifos/portfolio/service/internal/util/AccountingAdapterTest.java
@@ -19,22 +19,21 @@
 package io.mifos.portfolio.service.internal.util;
 
 import com.google.common.collect.Sets;
-import io.mifos.accounting.api.v1.client.JournalEntryAlreadyExistsException;
-import io.mifos.accounting.api.v1.client.LedgerManager;
-import io.mifos.accounting.api.v1.domain.Creditor;
-import io.mifos.accounting.api.v1.domain.Debtor;
-import io.mifos.accounting.api.v1.domain.JournalEntry;
-import io.mifos.core.api.util.UserContextHolder;
 import io.mifos.individuallending.internal.service.DesignatorToAccountIdentifierMapper;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.fineract.cn.accounting.api.v1.client.JournalEntryAlreadyExistsException;
+import org.apache.fineract.cn.accounting.api.v1.client.LedgerManager;
+import org.apache.fineract.cn.accounting.api.v1.domain.Creditor;
+import org.apache.fineract.cn.accounting.api.v1.domain.Debtor;
+import org.apache.fineract.cn.accounting.api.v1.domain.JournalEntry;
+import org.apache.fineract.cn.api.util.UserContextHolder;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.Matchers;
 import org.mockito.Mockito;
 
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * @author Myrle Krantz
  */