public function cypherQuery($string, $parameters)
    {
        try {

            $start = microtime(true);

            $query = new InternalCypherQuery($this->client, $string, $parameters);
            $rs = $query->getResultSet();

            $time = microtime(true) - $start;
            $this->triggerEvent(self::QUERY_RUN, $query, $parameters, $time);

            return $rs;
        }

        catch (EverymanException $e)
        {
            $message = $e->getMessage();
            preg_match('/\[message\] => (.*)/', $message, $parts);
            throw new Exception('Query execution failed: ' . $parts[1], 0, $e, $query);
        }
    }