public function build(array $data)
    {
        $this->validateArrayKeys(
            array('scope', 'access_token', 'token_type', 'app_id', 'expires_in'),
            $data
        );

        if (empty($data['access_token'])) {
            throw new BuilderException('access_token is mandatory and should not be empty');
        }

        $accessToken = new AccessToken(
            $data['access_token'],
            $data['token_type'],
            $data['app_id'],
            $data['expires_in'],
            $data['scope']
        );
        $accessToken->setPaypalData($data);

        return $accessToken;
    }