improvement: canonicalize the uri