private static function setByDotNotation($dots, $value, $scalar = true)
    {
        if ($dots == null) { static::$store = $value; }

        $exploded = explode('.', $dots);
        $valuePointer = &static::$store;

        # Loop until end of explodes and reset store's pointer to $valuePointer by reference
        $length = count($exploded);
        for ($i = 0; $i < $length; $i++) {
            $key = $exploded[$i];

            $valuePointer = &$valuePointer[$key];
        }

         if ($scalar === true) {
            $valuePointer = $value;
         } else {
            (array) $valuePointer;
            $valuePointer[] = $value;
         }


        return $valuePointer;
    }