I feel like `uri_escape_version` and `version_from_uri` should be a mixin instead of class methods. Are we using them elsewhere? They seem fairly reusable.