protected function makeCall($uri, array $requestParameters)
    {
        $requestParameters['key'] = $this->getApiKey();
        
        $text = '';
        if (isset($requestParameters['text']) && is_array($requestParameters['text'])) {
              $text = '&text=' . implode('&text=', $requestParameters['text']);
              unset($requestParameters['text']);
        }
        
        $requestParameters = http_build_query($requestParameters) . $text;

        $curlOptions = array(
                CURLOPT_URL             => self::API_URL . $uri,
                CURLOPT_POSTFIELDS      => $requestParameters,
                CURLOPT_RETURNTRANSFER  => true,
                CURLOPT_CONNECTTIMEOUT  => 20,
                CURLOPT_TIMEOUT         => 60,
                CURLOPT_SSL_VERIFYPEER  => false,
                CURLOPT_CUSTOMREQUEST   => 'POST',
            );
            
        $ch = curl_init();
        curl_setopt_array($ch, $curlOptions);
        $callResult = curl_exec($ch);
        
        if (!$callResult) {
            throw new TranslateException('Error: makeCall() - cURL error: ' . curl_error($ch));
        }
        curl_close($ch);
        
        $callResult = json_decode($callResult, true);
        
        if (isset($callResult['code']) && $callResult['code'] > 200) {
            throw new TranslateException('API error: ' .$callResult['message'], $callResult['code']);
        }
        
        return $callResult;
    }