implement location service