combine ideas and provide BC by extending `ModUrl` instead of `AbstractUrl`