protected function resolve(string $key)
    {
        // Break the dotted notation keys into its parts
        $parts = explode(".", $key);

        // Set the pointer at the root of the items array
        $pointer = &$this->items;

        /**
         * 
         * Loop through all the parts and see if the key exists.
         * 
         */
        foreach( $parts as $part ){

            if( array_key_exists($part, $pointer) === false ){
                throw new \Exception("Config key {$key} not found.");
            }
            
            $pointer = &$pointer[$part];
        }

        return $pointer;
    }