more location detection stuff