diff --git a/tcp_tests/fixtures/salt_fixtures.py b/tcp_tests/fixtures/salt_fixtures.py
index e22b16f..047f106 100644
--- a/tcp_tests/fixtures/salt_fixtures.py
+++ b/tcp_tests/fixtures/salt_fixtures.py
@@ -27,13 +27,11 @@
 
 @pytest.fixture(scope='function')
 def salt_actions(config, underlay):
-    """Fixture that provides various actions for K8S
+    """Fixture that provides various actions for salt
 
     :param config: fixture provides oslo.config
     :param underlay: fixture provides underlay manager
-    :rtype: K8SManager
-
-    For use in tests or fixtures to deploy a custom K8S
+    :rtype: SaltManager
     """
     return saltmanager.SaltManager(config, underlay)
 
@@ -41,27 +39,29 @@
 @pytest.fixture(scope='function')
 def salt_deployed(revert_snapshot, request, config,
                   hardware, underlay, salt_actions):
-    """Fixture to get or install TCP on environment
+    """Fixture to get or install salt service on environment
 
+    :param revert_snapshot: fixture that reverts snapshot that is specified
+                            in test with @pytest.mark.revert_snapshot(<name>)
     :param request: fixture provides pytest data
     :param config: fixture provides oslo.config
     :param hardware: fixture provides enviromnet manager
     :param underlay: fixture provides underlay manager
-    :param tcp_actions: fixture provides TCPManager instance
-    :rtype: TCPManager
+    :param salt_actions: fixture provides SaltManager instance
+    :rtype: SaltManager
 
-    If config.tcp.tcp_host is not set, this fixture assumes that
-    the tcp cluster was not deployed, and do the following:
-    - deploy tcp cluster
-    - make snapshot with name 'tcp_deployed'
-    - return TCPCluster instance
+    If config.salt.salt_master_host is not set, this fixture assumes that
+    the salt was not installed, and do the following:
+    - install salt master and salt minions
+    - make snapshot with name 'salt_deployed'
+    - return SaltManager
 
-    If config.tcp.tcp_host was set, this fixture assumes that the tcp
-    cluster was already deployed, and do the following:
-    - return TCPCluster instance
+    If config.salt.salt_master_host was set, this fixture assumes that the
+    salt was already deployed, and do the following:
+    - return SaltManager instance
 
-    If you want to revert 'tcp_deployed' snapshot, please use mark:
-    @pytest.mark.revert_snapshot("tcp_deployed")
+    If you want to revert 'salt_deployed' snapshot, please use mark:
+    @pytest.mark.revert_snapshot("salt_deployed")
     """
     # If no snapshot was reverted, then try to revert the snapshot
     # that belongs to the fixture.
