diff --git a/build.gradle b/build.gradle
index b5ba9cf..f81952a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -50,7 +50,7 @@
         fineractcndeposit       : '0.1.0-BUILD-SNAPSHOT',
         fineractcnteller        : '0.1.0-BUILD-SNAPSHOT',
         fineractcnreporting     : '0.1.0-BUILD-SNAPSHOT',
-        kuelapcheques           : '0.1.0-BUILD-SNAPSHOT',
+        fineractcncheques       : '0.1.0-BUILD-SNAPSHOT',
         fineractcnpayroll       : '0.1.0-BUILD-SNAPSHOT',
         fineractcngroup         : '0.1.0-BUILD-SNAPSHOT',
         fineractcnnotification  : '0.1.0-BUILD-SNAPSHOT',
@@ -108,7 +108,7 @@
             [group: 'org.apache.fineract.cn.deposit-account-management', name: 'api', version: versions.fineractcndeposit],
             [group: 'org.apache.fineract.cn.teller', name: 'api', version: versions.fineractcnteller],
             [group: 'org.apache.fineract.cn.reporting', name: 'api', version: versions.fineractcnreporting],
-            [group: 'org.apache.fineract.cn.cheques', name: 'api', version: versions.kuelapcheques],
+            [group: 'org.apache.fineract.cn.cheques', name: 'api', version: versions.fineractcncheques],
             [group: 'org.apache.fineract.cn.payroll', name: 'api', version: versions.fineractcnpayroll],
             [group: 'org.apache.fineract.cn.group', name: 'api', version: versions.fineractcngroup],
             [group: 'org.apache.fineract.cn.notification', name: 'api', version: versions.fineractcnnotification],
diff --git a/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java b/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java
index bb7212a..91c4651 100644
--- a/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java
+++ b/src/main/java/org/apache/fineract/cn/dev/ServiceRunner.java
@@ -129,7 +129,6 @@
   private static Microservice<GroupManager> groupManager;
   private static Microservice<NotificationManager> notificationManager;
 
-
   private static DB embeddedMariaDb;
 
   private static final String CUSTOM_PROP_PREFIX = "custom.";
@@ -271,11 +270,11 @@
     ServiceRunner.reportManager.kill();
     ServiceRunner.tellerManager.kill();
     ServiceRunner.depositAccountManager.kill();
-    ServiceRunner.rhythmManager.kill();
     ServiceRunner.portfolioManager.kill();
     ServiceRunner.ledgerManager.kill();
     ServiceRunner.customerManager.kill();
     ServiceRunner.organizationManager.kill();
+    ServiceRunner.rhythmManager.kill();
     ServiceRunner.identityManager.kill();
 
     if (!isPersistent) {
@@ -334,8 +333,6 @@
       logger.info("Service '{}' started with debug port {}.", microservice.name(), microservice.debuggingPort());
     }
     microservice.setApiFactory(this.apiFactory);
-
-    TimeUnit.SECONDS.sleep(20); //Give it some extra time before the next service...
   }
 
   private void migrateServices() {
@@ -351,11 +348,6 @@
             ServiceRunner.provisionerService.api().assignIdentityManager(tenant.getIdentifier(), assignedApplication);
           } else {
             ServiceRunner.provisionerService.api().assignApplications(tenant.getIdentifier(), Collections.singletonList(assignedApplication));
-            try {
-              Thread.sleep(5000L);
-            } catch (InterruptedException e) {
-              //do nothing
-            }
           }
         });
       });
