protected function belongsTo($class, $foreignKey): ?LightModel
    {
        $identifier = implode('_', [$class, $foreignKey]);

        if (! isset($this->_belongsTo[$identifier]))
        {
            if (! $this->getTable()->hasColumn($foreignKey))
            {
                throw new ColumnMissingException($this->getTableName() . ' does not have column: ' . $foreignKey);
            }

            $this->_belongsTo[$identifier] = $class::getOneByKey($this->$foreignKey);
        }

        return $this->_belongsTo[$identifier];
    }