public function asSeparateTable(string $tableName): SubClassDefinitionDefiner
    {
        return new SubClassDefinitionDefiner(
            $this->orm,
            $this->parentDefinition,
            function (MapperDefinition $subClassDefinition) use ($tableName) {

                call_user_func(
                    $this->callback,
                    function (Table $parentTable) use ($subClassDefinition, $tableName) {
                        $subClassDefinition->idToPrimaryKey($parentTable->getPrimaryKeyColumnName());
                        $finalizedSubClassDefinition = $subClassDefinition->finalize($tableName);

                        return new JoinedSubClassObjectMapping(
                            $parentTable,
                            $finalizedSubClassDefinition
                        );
                    },
                    $subClassDefinition
                );
            }
        );
    }