refactor chapter 4 to use a concern for the CLLocationManager delegate