private string EndpointUrl()
{
if (_endpointUrl != null) return _endpointUrl; //jfis - cached previous value. if _endpoint or _params changes this is a problem
var uri = Utility.AppendParams(_endpoint, _params);
var vsn = new JObject(new JProperty("vsn", Phoenix.VSN));
uri = Utility.AppendParams(uri, vsn);
//jfis - user must supply protocol
_endpointUrl = uri;
return uri;
}