diff --git a/src/Scaffolding/Scaffolding.php b/src/Scaffolding/Scaffolding.php
index 6d971b3e741f9720dce9c720b84051f341a2fb0a..1a8e8bdc053d204786d93265149488ab84b5b76e 100644
--- a/src/Scaffolding/Scaffolding.php
+++ b/src/Scaffolding/Scaffolding.php
@@ -5,11 +5,10 @@ namespace Grifart\Tables\Scaffolding;
 use Grifart\ClassScaffolder\Definition\ClassDefinition;
 use Grifart\Tables\Row;
 use Grifart\Tables\TypeMapper;
+use function Grifart\ClassScaffolder\Capabilities\constructorWithPromotedProperties;
 use function Grifart\ClassScaffolder\Capabilities\getters;
 use function Grifart\ClassScaffolder\Capabilities\implementedInterface;
-use function Grifart\ClassScaffolder\Capabilities\initializingConstructor;
 use function Grifart\ClassScaffolder\Capabilities\privatizedConstructor;
-use function Grifart\ClassScaffolder\Capabilities\properties;
 use function Grifart\ClassScaffolder\Definition\Types\nullable;
 use function Grifart\ClassScaffolder\Definition\Types\resolve;
 
@@ -96,8 +95,7 @@ final class Scaffolding
 		$rowClass = $addTableFields(new ClassDefinition($rowClassName))
 			->with(
 				implementedInterface(Row::class),
-				properties(),
-				initializingConstructor(),
+				constructorWithPromotedProperties(),
 				privatizedConstructor(),
 				getters(),
 				new ReconstituteConstructor(),
diff --git a/src/Scaffolding/TableImplementation.php b/src/Scaffolding/TableImplementation.php
index f84aeb94b0cf0b72f27d0b6b79edfd0d0baae93e..40bbf08f1ec881d015f94d9ccca45a506ce0b5da 100644
--- a/src/Scaffolding/TableImplementation.php
+++ b/src/Scaffolding/TableImplementation.php
@@ -96,11 +96,6 @@ final class TableImplementation implements Capability
 		// Column references
 		// todo add - use constants? Or references to Column class?
 
-		$namespace->addUse(TableManager::class);
-		$classType->addProperty('tableManager')
-			->addComment('@var TableManager')
-			->setVisibility('private');
-
 		$classType->addMethod('find')
 			->setParameters([
 				(new Code\Parameter('primaryKey'))
@@ -238,13 +233,11 @@ final class TableImplementation implements Capability
 				'$this->tableManager->delete($this, $primaryKey);'
 			);
 
+		$namespace->addUse(TableManager::class);
 		$classType->addMethod('__construct')
-			->setParameters([
-				(new Code\Parameter('tableManager'))->setTypeHint(TableManager::class)
-			])
-			->setBody(
-				'$this->tableManager = $tableManager;'
-			);
+			->addPromotedParameter('tableManager')
+			->setType(TableManager::class)
+			->setPrivate();