merge +fix location providers

location is now obtained using Location Service and then Location
Providers (actual location), that is better in terms of getting the
actual location
merge
merge