protected function _recursivelyExtractObject(string $path, EntityInterface $object): ?EntityInterface
    {
        if (stripos($path, '.') !== false) {
            $split = explode('.', $path);
            $path = array_shift($split);

            if (count($split) > 0 && $object->{$path} !== null) {
                return $this->_recursivelyExtractObject(implode('.', $split), $object->{$path});
            }
        } else {
            return $object->{$path};
        }

        return null;
    }