diff --git a/tests/KeepMethodDecorator/Stub/StubKeepMethod.overwritten.phps b/tests/KeepMethodDecorator/Stub/StubKeepMethod.overwritten.phps
new file mode 100644
index 0000000000000000000000000000000000000000..8ae761706be63540361dbbe1bb158f9e922d4a4f
--- /dev/null
+++ b/tests/KeepMethodDecorator/Stub/StubKeepMethod.overwritten.phps
@@ -0,0 +1,5 @@
+namespace Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub;
+
+final class StubKeepMethod
+{
+}
diff --git a/tests/Stub/StubKeepMethod.php b/tests/KeepMethodDecorator/Stub/StubKeepMethod.php
similarity index 90%
rename from tests/Stub/StubKeepMethod.php
rename to tests/KeepMethodDecorator/Stub/StubKeepMethod.php
index fc768e64b9d09d0ec9882619db34e30051972280..026dde9a6c57453e9828eb62aa44c9d49f5fb93f 100644
--- a/tests/Stub/StubKeepMethod.php
+++ b/tests/KeepMethodDecorator/Stub/StubKeepMethod.php
@@ -1,6 +1,6 @@
 <?php declare(strict_types=1);
 
-namespace Grifart\ClassScaffolder\Test\Stub;
+namespace Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub;
 
 use Grifart\ClassScaffolder\Definition\ClassDefinition;
 use Grifart\ClassScaffolder\Definition\ClassDefinitionBuilder;
diff --git a/tests/Stub/StubKeepMethod.preserved.phps b/tests/KeepMethodDecorator/Stub/StubKeepMethod.preserved.phps
similarity index 91%
rename from tests/Stub/StubKeepMethod.preserved.phps
rename to tests/KeepMethodDecorator/Stub/StubKeepMethod.preserved.phps
index 165880fccef06338d233db46f1cd77082ac2164d..942de5f0faae2467528dac9d9f44a856c851ec1d 100644
--- a/tests/Stub/StubKeepMethod.preserved.phps
+++ b/tests/KeepMethodDecorator/Stub/StubKeepMethod.preserved.phps
@@ -1,4 +1,4 @@
-namespace Grifart\ClassScaffolder\Test\Stub;
+namespace Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub;
 
 use Grifart\ClassScaffolder\Definition\ClassDefinition;
 use Grifart\ClassScaffolder\Definition\ClassDefinitionBuilder;
diff --git a/tests/KeepMethodDecorator/keepMethodDecorator.phpt b/tests/KeepMethodDecorator/keepMethodDecorator.phpt
new file mode 100644
index 0000000000000000000000000000000000000000..f3a1b19b9dc58bf82351fc3c995c79526f035f42
--- /dev/null
+++ b/tests/KeepMethodDecorator/keepMethodDecorator.phpt
@@ -0,0 +1,42 @@
+<?php declare(strict_types=1);
+
+namespace Grifart\ClassScaffolder\Test;
+
+use Grifart\ClassScaffolder\Decorators\ClassDecorator;
+use Grifart\ClassScaffolder\Definition\ClassDefinition;
+use Grifart\ClassScaffolder\Definition\Types;
+use Tester\Assert;
+
+require_once __DIR__ . '/../bootstrap.php';
+$generator = new \Grifart\ClassScaffolder\ClassGenerator();
+
+/**
+ * @param ClassDecorator[] $decorators
+ */
+$generateClass = static fn (array $decorators) => $generator->generateClass(
+	new ClassDefinition(
+		'Grifart\ClassScaffolder\Test\KeepMethodDecorator\Stub',
+		'StubKeepMethod',
+		[],
+		['field'=>Types\resolve('mixed')],
+		$decorators
+	),
+);
+
+// methods are preserved
+Assert::matchFile(
+	__DIR__ . '/Stub/StubKeepMethod.preserved.phps',
+	(string) $generateClass([
+		new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('newMethod'),
+		new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKept'),
+		new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithParam'),
+		new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithImportedUses'),
+		new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithAnnotation'),
+	]),
+);
+
+// methods are overwritten
+Assert::matchFile(
+	__DIR__ . '/Stub/StubKeepMethod.overwritten.phps',
+	(string) $generateClass([]),
+);
diff --git a/tests/Stub/StubKeepMethod.overwritten.phps b/tests/Stub/StubKeepMethod.overwritten.phps
deleted file mode 100644
index 115cbd7fa4fdb031ee2adbfbf6b7c5b16d0d97a7..0000000000000000000000000000000000000000
--- a/tests/Stub/StubKeepMethod.overwritten.phps
+++ /dev/null
@@ -1,5 +0,0 @@
-namespace Grifart\ClassScaffolder\Test\Stub;
-
-final class StubKeepMethod
-{
-}
diff --git a/tests/classGenerator.1-simple.phps b/tests/basic-test/classGenerator.1-simple.phps
similarity index 100%
rename from tests/classGenerator.1-simple.phps
rename to tests/basic-test/classGenerator.1-simple.phps
diff --git a/tests/classGenerator.2-with-iterator.phps b/tests/basic-test/classGenerator.2-with-iterator.phps
similarity index 100%
rename from tests/classGenerator.2-with-iterator.phps
rename to tests/basic-test/classGenerator.2-with-iterator.phps
diff --git a/tests/classGenerator.3-with-field.phps b/tests/basic-test/classGenerator.3-with-field.phps
similarity index 100%
rename from tests/classGenerator.3-with-field.phps
rename to tests/basic-test/classGenerator.3-with-field.phps
diff --git a/tests/classGenerator.4-with-field-nullable.phps b/tests/basic-test/classGenerator.4-with-field-nullable.phps
similarity index 100%
rename from tests/classGenerator.4-with-field-nullable.phps
rename to tests/basic-test/classGenerator.4-with-field-nullable.phps
diff --git a/tests/classGenerator.5-with-list.phps b/tests/basic-test/classGenerator.5-with-list.phps
similarity index 100%
rename from tests/classGenerator.5-with-list.phps
rename to tests/basic-test/classGenerator.5-with-list.phps
diff --git a/tests/classGenerator.6-with-complex-collection.phps b/tests/basic-test/classGenerator.6-with-complex-collection.phps
similarity index 100%
rename from tests/classGenerator.6-with-complex-collection.phps
rename to tests/basic-test/classGenerator.6-with-complex-collection.phps
diff --git a/tests/classGenerator.7-setters.phps b/tests/basic-test/classGenerator.7-setters.phps
similarity index 100%
rename from tests/classGenerator.7-setters.phps
rename to tests/basic-test/classGenerator.7-setters.phps
diff --git a/tests/classGenerator.8-generics.phps b/tests/basic-test/classGenerator.8-generics.phps
similarity index 100%
rename from tests/classGenerator.8-generics.phps
rename to tests/basic-test/classGenerator.8-generics.phps
diff --git a/tests/classGenerator.9-cross-reference.phps b/tests/basic-test/classGenerator.9-cross-reference.phps
similarity index 100%
rename from tests/classGenerator.9-cross-reference.phps
rename to tests/basic-test/classGenerator.9-cross-reference.phps
diff --git a/tests/classGenerator.phpt b/tests/basic-test/classGenerator.phpt
similarity index 98%
rename from tests/classGenerator.phpt
rename to tests/basic-test/classGenerator.phpt
index 180869acb6502bcf3d6c8e03b9ecd92a20a0770f..af7052553d5bcea6a6481cf496ddfbe073e5ec29 100644
--- a/tests/classGenerator.phpt
+++ b/tests/basic-test/classGenerator.phpt
@@ -7,7 +7,7 @@ use Grifart\ClassScaffolder\Definition\ClassDefinition;
 use \Grifart\ClassScaffolder\Definition\Types;
 use function Grifart\ClassScaffolder\Definition\Types\nullable;
 
-require_once __DIR__ . '/bootstrap.php';
+require_once __DIR__ . '/../bootstrap.php';
 
 
 
diff --git a/tests/keepMethodDecorator.phpt b/tests/keepMethodDecorator.phpt
deleted file mode 100644
index 71da51c7fd9230e8e58432a173ac734445d529ba..0000000000000000000000000000000000000000
--- a/tests/keepMethodDecorator.phpt
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php declare(strict_types=1);
-
-namespace Grifart\ClassScaffolder\Test;
-
-use Grifart\ClassScaffolder\Definition\ClassDefinition;
-use Grifart\ClassScaffolder\Definition\Types;
-use Tester\Assert;
-
-require_once __DIR__ . '/bootstrap.php';
-$generator = new \Grifart\ClassScaffolder\ClassGenerator();
-
-$generateClass = fn (bool $withDecorators) => $generator->generateClass(
-	new ClassDefinition(
-		'Grifart\ClassScaffolder\Test\Stub',
-		'StubKeepMethod',
-		[],
-		['field'=>Types\resolve('mixed')],
-		$withDecorators
-			? [
-				new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('newMethod'),
-				new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKept'),
-				new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithParam'),
-				new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithImportedUses'),
-				new \Grifart\ClassScaffolder\Decorators\KeepMethodDecorator('methodToBeKeptWithAnnotation'),
-			]
-			: [],
-	),
-);
-
-// methods are preserved
-Assert::matchFile(
-	__DIR__ . '/Stub/StubKeepMethod.preserved.phps',
-	(string) $generateClass(withDecorators: true),
-);
-
-// methods are overwritten
-Assert::matchFile(
-	__DIR__ . '/Stub/StubKeepMethod.overwritten.phps',
-	(string) $generateClass(withDecorators: false),
-);