diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py
index 7643af2d500ac06b683c6d09fb704d48e137c0a1..7cd3972a0de61423cd05d6586129d00f86bb9da5 100644
--- a/b_asic/signal_flow_graph.py
+++ b/b_asic/signal_flow_graph.py
@@ -406,14 +406,15 @@ class SFG(AbstractOperation):
         return self()
 
     def replace_operations(self, inputs: Sequence[Input], outputs: Sequence[Output], operation: Operation):
-        """Replace one or more operations in the sfg with a operation that have same number of inputs and outputs.
-        Then return a new deepcopy of the sfg.
+        """Replace multiple operations in the sfg with a operation of equivalent functionallity with the same number of inputs and outputs.
+        Then return a new deepcopy of the sfg with the replaced operations.
 
         Arguments:
-        inputs: The inputs for the operations we are replacing.
-        outputs: The outputs for the operations we are replacing.
-        operation: The replacing operation.
+        inputs: The inputs of the operations we are replacing.
+        outputs: The outputs of the operations we are replacing.
+        operation: The operation used for replacement.
         """
+        return self()
 
     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 b1e4f18c20105b566796b000493af5cb9853f8bb..e8879ee61d5d595a7aab826209e209c30afe9c9f 100644
--- a/test/test_sfg.py
+++ b/test/test_sfg.py
@@ -1,6 +1,6 @@
 import pytest
 
-from b_asic import SFG, Signal, Input, Output, Constant, Addition, Multiplication, MAD
+from b_asic import SFG, Signal, Input, Output, Constant, Addition, Subtraction, Multiplication, MAD, ConstantMultiplication, Butterfly
 
 
 class TestInit:
@@ -256,20 +256,38 @@ class TestReplaceComponents:
             assert False
 
 class TestReplaceOperations:
-    def test_replace_mul_add_with_MAD(self):
+    def test_replace_mul_add_with_mad(self):
         in1 = Input()
         in2 = Input()
         in3 = Input()
         mul1 = in1 * in2
         add1 = mul1 + in3
         out1 = Output(add1)
-
         sfg = SFG(inputs=[in1, in2, in3], outputs=[out1])
-        assert len(sfg.operations) == 6
 
         mad1 = MAD()
-
         sfg.replace_operations([in1, in2, in3], [out1], mad1)
-        assert len(sfg.operations) == 5
+
+        assert mad1 in sfg.operations
         assert {add1, mul1} not in sfg.operations
-        
\ No newline at end of file
+
+    def test_replace_neg_add_with_sub(self):
+        in1 = Input()
+        in2 = Input()
+        neg = ConstantMultiplication(-1, in1)
+        add1 = neg + in2
+        out1 = Output(add1)
+        sfg = SFG(inputs=[in1, in2], outputs=[out1])
+
+        sub1 = Subtraction()
+        sfg.replace_operations([in1, in2], [out1], sub1)
+
+        assert sub1 in sfg.operations
+        assert {add1, neg} not in sfg.operations
+
+    def test_not_equal_functionallity(self, operation_tree):
+        sfg = SFG(outputs=[Output(operation_tree)])
+
+        mul1 = Multiplication()
+        with pytest.raises(AssertionError):
+            sfg.replace_operations([sfg.inputs(0), sfg.inputs(1)], [sfg.outputs(0)], mul1)