url doesn't need to be a public method, and allow setter injection of location object