refactoring and typing in progress
diff --git a/wally/test_run_class.py b/wally/test_run_class.py
index e937300..cac893c 100644
--- a/wally/test_run_class.py
+++ b/wally/test_run_class.py
@@ -3,35 +3,37 @@
 
 
 from .timeseries import SensorDatastore
-from . import inode
-from .start_vms import OSCreds
-from .storage import IStorage
+from .node_interfaces import NodeInfo, IRPCNode, RPCBeforeConnCallback
+from .start_vms import OSCreds, NovaClient, CinderClient
+from .storage import Storage
 from .config import Config
 
 
 class TestRun:
     """Test run information"""
-    def __init__(self, config: Config, storage: IStorage):
+    def __init__(self, config: Config, storage: Storage):
         # NodesInfo list
-        self.nodes_info = []  # type: List[inode.NodeInfo]
+        self.nodes_info = []  # type: List[NodeInfo]
 
         # Nodes list
-        self.nodes = []  # type: List[inode.INode]
+        self.nodes = []  # type: List[IRPCNode]
 
         self.build_meta = {}  # type: Dict[str,Any]
         self.clear_calls_stack = []  # type: List[Callable[['TestRun'], None]]
-
-        # created openstack nodes
-        self.openstack_nodes_ids = []  # type: List[str]
         self.sensors_mon_q = None
 
         # openstack credentials
         self.fuel_openstack_creds = None  # type: Optional[OSCreds]
+        self.os_creds = None  # type: Optional[OSCreds]
+        self.nova_client = None  # type: Optional[NovaClient]
+        self.cinder_client = None  # type: Optional[CinderClient]
 
         self.storage = storage
         self.config = config
         self.sensors_data = SensorDatastore()
 
+        self.before_conn_callback = None  # type: RPCBeforeConnCallback
+
     def get_pool(self):
         return ThreadPoolExecutor(self.config.get('worker_pool_sz', 32))