Base implementation

You are re-using `getUriString` here: cache it in a variable. This is not for performance, but just about not trusting `getUriString` being idempotent