private static function setArrayValue(&$root, $compositeKey, $value)
    {
        $keys = explode('.', $compositeKey);
        while (count($keys) > 1) {
            $key = array_shift($keys);
            if (!isset($root[$key])) {
                $root[$key] = [];
            }
            $root = &$root[$key];
        }

        $key = reset($keys);
        $root[$key] = $value;
    }