diff --git a/test/conftest.py b/test/conftest.py
new file mode 100644
index 0000000000000000000000000000000000000000..986af94cc7341f48ba736e6f9d934c8eb706c079
--- /dev/null
+++ b/test/conftest.py
@@ -0,0 +1,2 @@
+import pytest
+from test.fixtures.signal import *
\ No newline at end of file
diff --git a/test/fixtures/__init__.py b/test/fixtures/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/test/fixtures/signal.py b/test/fixtures/signal.py
new file mode 100644
index 0000000000000000000000000000000000000000..5fbdcf2b4e5e50c9728fb50529835a6fb501fc4c
--- /dev/null
+++ b/test/fixtures/signal.py
@@ -0,0 +1,20 @@
+import pytest
+from b_asic import Signal, SignalSource, SignalDestination, Addition
+
+"""
+Use a fixture for initializing objects and pass them as argument to a test function
+"""
+@pytest.fixture
+def signal():
+    source = SignalSource(Addition(0), 1)
+    dest = SignalDestination(Addition(1), 2)
+    return Signal(0, source, dest)
+
+@pytest.fixture
+def signals():
+    ret = []
+    for i in range(0,3):
+        source = SignalSource(Addition(0), 1)
+        dest = SignalDestination(Addition(1), 2)
+        ret.append(Signal(i, source, dest))
+    return ret
\ No newline at end of file
diff --git a/test/port/__init__.py b/test/port/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/test/port/test_inputport.py b/test/port/test_inputport.py
new file mode 100644
index 0000000000000000000000000000000000000000..d761900a500979d09a7b2584a9249eefda914d27
--- /dev/null
+++ b/test/port/test_inputport.py
@@ -0,0 +1,23 @@
+"""
+B-ASIC test suite for Inputport
+"""
+
+# import module we are testing
+from b_asic import InputPort
+
+# import dependencies
+from b_asic import Signal, SignalSource, SignalDestination, Addition
+
+import pytest
+
+def test_connect_multiple_signals(signals):
+    """
+    test if only one signal can connect to an input port
+    """
+    inp_port = InputPort(0)
+
+    for s in signals:
+        inp_port.connect(s)
+
+    assert inp_port.signal_count() == 1
+    assert inp_port.signals()[0] == signals[-1]
\ No newline at end of file
diff --git a/test/port/test_outputport.py b/test/port/test_outputport.py
new file mode 100644
index 0000000000000000000000000000000000000000..5f7b8f49f856e891fa6e70ce77cc19e464f6954d
--- /dev/null
+++ b/test/port/test_outputport.py
@@ -0,0 +1,18 @@
+"""
+B-ASIC test suite for InputPort
+TODO: More info
+"""
+from b_asic import OutputPort, Signal, SignalSource, SignalDestination, Addition
+import pytest
+
+def test_connect_multiple_signals(signals):
+    """
+    test if multiple signals can connect to an output port
+    """
+    outp_port = OutputPort(0)
+
+    for s in signals:
+        outp_port.connect(s)
+
+    assert outp_port.signal_count() == 3
+    assert outp_port.signals() == signals
\ No newline at end of file
diff --git a/test/test_port.py b/test/port/test_port.py
similarity index 73%
rename from test/test_port.py
rename to test/port/test_port.py
index f4e039a98c48828b99285525d359c89dd51b140d..56cb9be227149c957bf77f73ed4f1301e54fac16 100644
--- a/test/test_port.py
+++ b/test/port/test_port.py
@@ -1,16 +1,10 @@
 """
 B-ASIC test suite for Port interface, place all general test cases for abstract class Port here
-TODO: More info
 """
 
 from b_asic import InputPort, OutputPort, Signal, SignalSource, SignalDestination, Addition
 import pytest
 
-@pytest.fixture
-def signal():
-    source = SignalSource(Addition(0), 1)
-    dest = SignalDestination(Addition(1),2)
-    return Signal(source, dest)
 
 def test_connect_one_signal_to_port(signal):
     port = InputPort(0)
@@ -21,8 +15,8 @@ def test_connect_one_signal_to_port(signal):
 def test_change_port_signal():
     source = SignalSource(Addition(0), 1)
     dest = SignalDestination(Addition(1),2)
-    signal1 = Signal(source, dest)
-    signal2 = Signal(source, dest)
+    signal1 = Signal(1, source, dest)
+    signal2 = Signal(2, source, dest)
 
     port = InputPort(0)
     port.connect(signal1)
diff --git a/test/test_inputport.py b/test/test_inputport.py
deleted file mode 100644
index 0cb3cab9ead9862de4a3f16f42a47cd26bf81a15..0000000000000000000000000000000000000000
--- a/test/test_inputport.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""
-B-ASIC test suite for Inputport
-TODO: More info
-"""
-from b_asic import InputPort, Signal, SignalSource, SignalDestination, Addition
-import pytest
-
-@pytest.fixture
-def signal():
-    source = SignalSource(Addition(0), 1)
-    dest = SignalDestination(Addition(1),2)
-    return Signal(source, dest)
-
-def test_connect_multple_signals(signal):
-    """
-    make sure we can only connect one signal to an input port
-    """
-    inp_port = InputPort(0)
-    inp_port.connect(signal)
-
-    # create new signal
-    source = SignalSource(Addition(0), 3)
-    dest = SignalDestination(Addition(1),4)
-    new_signal = Signal(source, dest)
-
-    inp_port.connect(new_signal)
-    inp_port.signal_count() == 1
-    assert inp_port.signals() == [new_signal]
\ No newline at end of file
diff --git a/test/test_outputport.py b/test/test_outputport.py
deleted file mode 100644
index 35331670f829da40fa060142f9e68e06aaba2fa5..0000000000000000000000000000000000000000
--- a/test/test_outputport.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""
-B-ASIC test suite for InputPort
-TODO: More info
-"""
-from b_asic import OutputPort, Signal, SignalSource, SignalDestination, Addition
-import pytest
-
-@pytest.fixture
-def signal():
-    source = SignalSource(Addition(0), 1)
-    dest = SignalDestination(Addition(1),2)
-    return Signal(source, dest)
-
-def test_connect_multiple_signals(signal):
-    """
-    make sure we can connect multiple signals to an output port
-    """
-    outp_port = OutputPort(0)
-    outp_port.connect(signal)
-
-    # create new signal
-    source = SignalSource(Addition(0), 3)
-    dest = SignalDestination(Addition(1),4)
-    new_signal = Signal(source, dest)
-
-    outp_port.connect(new_signal)
-    outp_port.signal_count() == 2
-    assert outp_port.signals() == [signal, new_signal]
\ No newline at end of file
diff --git a/test/test_signal.py b/test/test_signal.py
deleted file mode 100644
index 35d51eb51eb75ec0c619b9137457e95d263dc580..0000000000000000000000000000000000000000
--- a/test/test_signal.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from b_asic import Signal, SignalSource, SignalDestination
-from b_asic.core_operations import Addition 
-import pytest
-
-# TODO mock operation
-# Use port index
-
-@pytest.fixture
-def operation():
-    return Addition(0)
-
-@pytest.fixture
-def signal_dest(operation):
-    return SignalDestination(operation, 0)
-
-@pytest.fixture
-def signal_src(operation):
-    return SignalSource(operation, 0)
-
-def test_construct_source_signal(operation):
-    s = SignalSource(operation, 0)
-    assert True
-
-
-def test_construct_signal():
-    s = Signal(signal_src, signal_dest)
-    assert True
-