Make location functionality a separate service