partially typesafe url construction