diff --git a/code/classes/SCDclass_component.m b/code/classes/SCDclass_component.m
index 16cc2b68a4d72bf4c1047501178fc1709c421887..5db11239f1408955afa7700bd80b8c2e0ad9ab2c 100644
--- a/code/classes/SCDclass_component.m
+++ b/code/classes/SCDclass_component.m
@@ -1,8 +1,7 @@
 classdef SCDclass_component
   % Superclass for SCD component
-  % Can be a wrapper or a node or all SCD
-  % Anything that has a model, a data dictionary
-  % and optionally an associated algorithm
+  % Can be a wrapper or a node
+  % Includes functions to link associated data dictionaries
   
   properties
     loadverbose = 1;
@@ -61,42 +60,7 @@ classdef SCDclass_component
         end
       end
     end
-    
-    function obj = linknodedd(obj,node)
-      % link node data dictionary to main expcode object data dicationary
-      assert(isa(node,'SCDclass_node'),'node must be an SCDclass_node object')
-      ddObj = Simulink.data.dictionary.open(obj.ddname);
-      
-      prefix = 'SCD_rtc';
-      
-      % already linked sources
-      prevsources = ddObj.DataSources;
-      prevsources_nodes = prevsources(startsWith(prevsources,prefix));
-      
-      % make algo data dictionary list list
-      reqsources = node.ddname;
-      
-      % removing unnecessary ones
-      for ii=1:numel(prevsources_nodes)
-        mysource = prevsources_nodes{ii};
-        if ~contains(reqsources,mysource)
-          obj.printlog('Removing algorithm data source %s from %s',mysource,obj.ddname);
-          ddObj.removeDataSource(prevsources_nodes{ii})
-        end
-      end
-      
-      % add new ones not yet present
-      mysource = reqsources;
-      assert(startsWith(mysource,prefix),...
-        'attempting to add algo dd: %s that does not start with ''%s''-aborting',prefix,mysource);
-      if contains(prevsources,mysource)
-        obj.printlog('Not adding node data source %s - already exists',mysource);
-      else
-        obj.printlog('Adding node data source %s to %s',mysource,obj.ddname);
-        ddObj.addDataSource(mysource);
-      end
-    end
-    
+       
     function obj=printlog(obj,str,varargin)
       % printlog, allows sprintf()-like expressions
       if obj.loadverbose==1
diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m
index 3dc0b5c95c5f9258f87b21113e63d1ff1cc719d5..5543496c62b4224f3ae9a95f6bc7a81b97a87f3c 100644
--- a/code/classes/SCDclass_expcode.m
+++ b/code/classes/SCDclass_expcode.m
@@ -37,10 +37,10 @@ classdef SCDclass_expcode
         modeltoactualize    % name of the algorithm to actualize ('all' means all coonfigured) 
         algos               % list of algorithms objects
         nodes               % array of node properties structs
-        configurednodes     % nodes that are configured (that exist)
-        configuredcpus      % cpus per node nodes that are configured (that exist)
-        ddname              % top level data dictionary name for the expcode
-        ddpath              % top level data dicationary save path
+        definednodes        % nodes that are defined in Simulink
+        definedcpus         % cpus per node nodes that are defined in Simulink
+        ddname ='tcv.sldd'  % main expcode data dictionary name
+        ddpath              % main expcode data dicationary save path
     end
     
 %%    
@@ -77,17 +77,6 @@ classdef SCDclass_expcode
         end
       end
       
-      function mydd = getddname(inode)
-        if nargin==0
-          mydd = 'tcv.sldd';
-        elseif nargin==1
-          assert(isnumeric(inode))
-          mydd = sprintf('SCD_rtc_%02d.sldd',inode);
-        else
-          error('invalid number of arguments');
-        end
-      end
-      
       function close_all(saveflag)
         if nargin==0
           saveflag = 1;
@@ -119,14 +108,14 @@ classdef SCDclass_expcode
             obj.maincode = 1;
             obj.status = 'debug';
             obj.loadverbose = 1;
-            obj.ddname = obj.getddname;
             
-            hardwarepath = fileparts(which('tcv.slx')); 
-            assert(~isempty(hardwarepath),'tcv.slx not found?')
+            mainslx = obj.getslxname;
+            hardwarepath = fileparts(which(mainslx)); 
+            assert(~isempty(hardwarepath),'%s not found?',mainslx)
             obj.ddpath = hardwarepath;
 
-            obj.configurednodes=[1 2 6 7 8];
-            obj.configuredcpus=[{1}; ...
+            obj.definednodes=[1 2 6 7 8];
+            obj.definedcpus=[{1}; ...
               {1:6}; ...
               {}; ...
               {1}; ...
@@ -142,10 +131,10 @@ classdef SCDclass_expcode
             obj.mdscontainer = SCDclass_mdsobjcontainer;
             obj.taskcontainer = SCDclass_taskcontainer;
 
-            nnodes = numel(obj.configurednodes);
+            nnodes = numel(obj.definednodes);
             obj.nodes = cell(1,nnodes);
             for inode = 1:nnodes
-              nodenr = obj.configurednodes(inode);
+              nodenr = obj.definednodes(inode);
               obj.nodes{nodenr} = SCDclass_node(nodenr);
             end
         end
@@ -202,7 +191,7 @@ classdef SCDclass_expcode
           dd = Simulink.data.dictionary.open(obj.ddname);
 
           % link data dictionaries for active nodes
-          for ii=obj.configurednodes
+          for ii=obj.definednodes
             mydatasource = obj.nodes{ii}.ddname;
             fprintf('adding data source %s to %s\n',mydatasource,obj.ddname)
             dd.addDataSource(mydatasource);
@@ -711,8 +700,8 @@ classdef SCDclass_expcode
             fprintf('opening %s\n',datadictname)
             
             % Looping through every active node
-            for idx_nodedds=1:numel(obj.configurednodes)
-               inode = obj.configurednodes(idx_nodedds);
+            for idx_nodedds=1:numel(obj.definednodes)
+               inode = obj.definednodes(idx_nodedds);
                mynode = obj.nodes{inode};
 
                % Add all wrapper dictionaries as datasources for main dd
@@ -757,8 +746,8 @@ classdef SCDclass_expcode
 %           obj.mdscontainer.buildworkspacesimstruct; % old
           
           dd=SCDconf_getdatadict(obj.ddname);
-            for ii = 1:numel(obj.configurednodes)
-              inode = obj.configurednodes(ii);
+            for ii = 1:numel(obj.definednodes)
+              inode = obj.definednodes(ii);
               buildworkspacesimstructnode(obj,inode,dd);
             end
             
@@ -782,10 +771,10 @@ classdef SCDclass_expcode
           zeroElem = Simulink.BusElement;
           zeroElem.Name = 'zero';
           
-          Elems = repmat(Simulink.BusElement,numel(obj.configurednodes),1);
+          Elems = repmat(Simulink.BusElement,numel(obj.definednodes),1);
           
-          for ii = 1:numel(obj.configurednodes)
-            inode = obj.configurednodes(ii);
+          for ii = 1:numel(obj.definednodes)
+            inode = obj.definednodes(ii);
             leafName    = sprintf('Node%02d_RFM' ,inode);
             subBusName  = sprintf('Bus: RFMOUT%02dbus',inode);
             
@@ -830,8 +819,8 @@ classdef SCDclass_expcode
             
             s=struct();
             % Looping through every active node
-            for ii=1:numel(obj.configurednodes)
-              inode = obj.configurednodes(ii);
+            for ii=1:numel(obj.definednodes)
+              inode = obj.definednodes(ii);
               mynode = obj.nodes{inode};
               
               for jj=1:numel(mynode.wrappers)
diff --git a/code/classes/SCDclass_node.m b/code/classes/SCDclass_node.m
index 190b1fcf61cfc7ec462c67170885a0f9db05bbef..60794ba4a29a5fad68a6ca369a65e07f46cd434f 100644
--- a/code/classes/SCDclass_node.m
+++ b/code/classes/SCDclass_node.m
@@ -193,6 +193,41 @@ classdef SCDclass_node < SCDclass_component
       obj.active = value;
     end
     
+    function linknodedd(obj,node)
+      % link node data dictionary to main expcode object data dicationary
+      assert(isa(node,'SCDclass_node'),'node must be an SCDclass_node object')
+      ddObj = Simulink.data.dictionary.open(obj.ddname);
+      
+      prefix = 'SCD_rtc';
+      
+      % already linked sources
+      prevsources = ddObj.DataSources;
+      prevsources_nodes = prevsources(startsWith(prevsources,prefix));
+      
+      % make algo data dictionary list list
+      reqsources = node.ddname;
+      
+      % removing unnecessary ones
+      for ii=1:numel(prevsources_nodes)
+        mysource = prevsources_nodes{ii};
+        if ~contains(reqsources,mysource)
+          obj.printlog('Removing algorithm data source %s from %s',mysource,obj.ddname);
+          ddObj.removeDataSource(prevsources_nodes{ii})
+        end
+      end
+      
+      % add new ones not yet present
+      mysource = reqsources;
+      assert(startsWith(mysource,prefix),...
+        'attempting to add algo dd: %s that does not start with ''%s''-aborting',prefix,mysource);
+      if contains(prevsources,mysource)
+        obj.printlog('Not adding node data source %s - already exists',mysource);
+      else
+        obj.printlog('Adding node data source %s to %s',mysource,obj.ddname);
+        ddObj.addDataSource(mysource);
+      end
+    end
+    
     function updatetemplatetp(obj)
       % update wrapper algos
       for ii=1:numel(obj.wrappers)