protected function getProperty($key, &$notFound) {
        $properties  = $this->properties;
        $subkeys     = $this->parseSubkeys(strtolower($key));
        $subKeysSize = sizeof($subkeys);
        $notFound    = false;

        for ($i=0; $i < $subKeysSize; ++$i) {
            $subkey = trim($subkeys[$i]);
            if (!is_array($properties) || !key_exists($subkey, $properties))
                break;                                      // not found
            if ($i+1 == $subKeysSize)                       // return at the last subkey
                return $properties[$subkey];
            $properties = $properties[$subkey];             // go to the next sublevel
        }

        $notFound = true;
        return null;
    }