diff --git a/tcp_tests/managers/runtestmanager.py b/tcp_tests/managers/runtestmanager.py
index b5772c5..70d573b 100644
--- a/tcp_tests/managers/runtestmanager.py
+++ b/tcp_tests/managers/runtestmanager.py
@@ -14,6 +14,7 @@
 
 import json
 import os
+import time
 
 from devops.helpers import helpers
 
@@ -124,15 +125,7 @@
             'pip.install', 'docker'), None
 
     def run_salt_minion_state(self):
-        return self.salt_api.enforce_state(self.master_tgt, 'salt.minion')
-
-    def check_ping_salt_master(self):
-        return self.salt_api.local('cfg01*', 'test.ping')
-
-    def install_formula(self):
-        return self.salt_api.local(
-            self.master_tgt,
-            'pkg.install', 'salt-formula-runtest'), None
+        return self.salt_api.local('cfg01*', 'state.sls', 'salt.minion')
 
     def create_networks(self):
         return self.salt_api.enforce_state(self.master_tgt, 'neutron.client')
@@ -207,17 +200,13 @@
 
     def prepare(self):
         self.store_runtest_model()
-        res = self.install_formula()
-        LOG.info(json.dumps(res, indent=4))
 
         res = self.install_python_lib()
         LOG.info(json.dumps(res, indent=4))
 
         res = self.run_salt_minion_state()
         LOG.info(json.dumps(res, indent=4))
-
-        res = self.check_ping_salt_master()
-        LOG.info(json.dumps(res, indent=4))
+        time.sleep(10)
 
         res = self.create_networks()
         LOG.info(json.dumps(res, indent=4))
