using urlencode because not stupid