protected function parse($userAgent)
    {
        // By default we're assuming that we're
        // NOT dealing with a Nodes user agent
        $originalUserAgent = $userAgent;

        // If we're dealing with a Nodes user agent
        // we'll have to split the received user agent
        // into two different one. An original one and a Nodes one
        $nodesUAPosition = strrpos($userAgent, 'Nodes/');
        if ($nodesUAPosition !== false) {
            // Extract Nodes user agent from
            // the receive user agent and parse it
            $nodesUserAgent = substr($userAgent, $nodesUAPosition);
            $this->parseNodesUserAgent($nodesUserAgent);

            // Chop off the Nodes user agent from the received user agent
            $originalUserAgent = substr($userAgent, 0, $nodesUAPosition - 1);
        }

        $this->parseOriginalUserAgent($originalUserAgent);
    }