uses id instead of urlsafe