diff --git a/code/classes/SCDclass_algo.m b/code/classes/SCDclass_algo.m
index 9cee69a8c7db2c5a45abc03f710a090c9a833edd..9a4bb6bd834195300bd78babeff393436b0f9ac4 100644
--- a/code/classes/SCDclass_algo.m
+++ b/code/classes/SCDclass_algo.m
@@ -296,6 +296,20 @@ classdef SCDclass_algo
           end
        end
        
+       function compile(obj)
+         try
+           eval(sprintf('%s([],[],[],''compile'')',obj.modelname));
+         catch
+           eval(sprintf('%s([],[],[],''term'')',obj.modelname));
+         end
+         eval(sprintf('%s([],[],[],''term'')',obj.modelname));
+         
+       end
+       
+       function sim(obj)
+         sim(obj.modelname);
+       end
+       
     end
 end
 
diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m
index b7ba781c566a933f2efb413055d441ad090b761c..e8647ee3f345d3cb2c05ae3ad1ff35ed78ba425c 100644
--- a/code/classes/SCDclass_expcode.m
+++ b/code/classes/SCDclass_expcode.m
@@ -531,7 +531,16 @@ classdef SCDclass_expcode
             fprintf(" }\n");
             fprintf("}\n");
         end
-        
+       
+        function tcvcompile(obj)
+          try
+            tcv([],[],[],'compile');
+            tcv([],[],[],'term');
+          catch ME
+            tcv([],[],[],'term');
+            rethrow(ME)
+          end
+        end
     end
    
     methods (Access = private)
diff --git a/tests/test_expcodes.m b/tests/test_expcodes.m
index 0d0515e9361aafc355afa3f4f8ebc0a04b56632d..5f55e69c5812213bebf09356494dd012494e152a 100644
--- a/tests/test_expcodes.m
+++ b/tests/test_expcodes.m
@@ -31,16 +31,17 @@ classdef test_expcodes < matlab.unittest.TestCase
   end
   
   methods(Test)
+    function test_callinits(testCase)
+      testCase.expcode_obj.callinits;
+    end
+    
+    function test_setup(testCase)
+      testCase.expcode_obj.setup; % run setup this exp code
+    end
+    
     function test_expcode(testCase)
       % attempt compiling tcv.slx for this expcode
-      try
-        tcv([],[],[],'compile');
-        tcv([],[],[],'term');
-      catch ME
-        tcv([],[],[],'term');
-        rethrow(ME)
-      end
-      testCase.assertTrue(true); % dummy
+      testCase.expcode_obj.tcvcompile; % compile tcv.slx with this expcode
     end
     
   end