public function call($method, $body = false, $uriAppend = false, $headers = [], $requiresAuthentication = true, $buildQueryParams = true)
    {
        $headers = $this->addRequestHeaders($headers);

        $url = $requiresAuthentication ? $this->client->getAPIEndpoint($this->uri) : $this->client->getAuthEndpoint();
        if ($uriAppend) {
            $url = $url . '/' . $uriAppend;
        }

        $request = clone $this->requestLib;
        $request->setURL($url)
            ->setMethod($method)
            ->addHeaders($headers)
            ->setBody($body);

        if ($buildQueryParams) {
            $request->setQueryStringParams($this->buildQueryStringParams());
        }

        if ($requiresAuthentication) {
            $request->addHeader('Authorization', $this->getAccessToken());
        }

        return $request->make()->getResponse();
    }