more accurate location detection