protected function execute()
    {
        $authMethod = '?access_token=' . $this->params['access_token'];
        $endpoint = Constants::API_VERSION . $this->path . (('GET' === $this->method) ? '?' . http_build_query($this->params) : $authMethod);
        $endpoint .= (strstr($endpoint, '?') ? '&' : '?') . 'sig=' . static::generateSignature($this->instagram->getApp(), $this->path, $this->params);

        $request = HelperFactory::getInstance()->request($this->instagram->getHttpClient(), $endpoint, $this->params, $this->method);

        if ($request === null) {
            throw new InstagramResponseException('400 Bad Request: instanceof InstagramResponse cannot be null', 400);
        }
        $this->response = new InstagramResponse($request);
        $this->xRateLimitRemaining = $this->response->getHeader('X-Ratelimit-Remaining');
    }