diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py
index d449a0a7f48a8801a8e63e686e30d37b431e026e..d2089f17d4f2c4811aa8b4db04ded44c6c7a09c2 100644
--- a/b_asic/signal_flow_graph.py
+++ b/b_asic/signal_flow_graph.py
@@ -444,7 +444,7 @@ class SFG(AbstractOperation):
                 _signal.remove_source()
                 _signal.set_source(operation.output(index_out))
        
-        return _sfg
+        return _sfg()
 
     def _evaluate_source(self, src: OutputPort, results: MutableResultMap, registers: MutableRegisterMap, prefix: str) -> Number:
         src_prefix = prefix
diff --git a/test/test_sfg.py b/test/test_sfg.py
index 885b0be87360ea34db9c846b539dac8dedcaf8e6..72737fda522637d1ac28e7c85a6e376aaa99f11f 100644
--- a/test/test_sfg.py
+++ b/test/test_sfg.py
@@ -274,13 +274,13 @@ class TestReplaceOperations:
     def test_replace_neg_add_with_sub(self):
         in1 = Input()
         in2 = Input()
-        neg1 = ConstantMultiplication(-1, in1, 'neg1')
+        neg1 = ConstantMultiplication(-1, in1)
         add1 = neg1 + in2
         out1 = Output(add1)
         sfg = SFG(inputs=[in1, in2], outputs=[out1])
 
         sub1 = Subtraction()
-        _sfg = sfg.replace_operations(['add1', 'neg1'], sub1)
+        _sfg = sfg.replace_operations(['add1', 'cmul1'], sub1)
 
         assert 'sub1' in _sfg._components_by_id.keys()
         assert {add1, neg1} not in _sfg.operations