parseCanonicalUri() needs to be static as it's only referenced statically