add location-based functionality