anchor.diff:          _location = currentLocation;
         });
       });
  +    setState(() {});
     }
   
     Future<void> _stopListen() async {
  -    _locationSubscription.cancel();
  +    _locationSubscription?.cancel();
  +    setState(() {
  +      _locationSubscription = null;
  +    });
  +  }
  +
  +  @override
  +  void dispose() {
  +    _locationSubscription?.cancel();
  +    setState(() {
  +      _locationSubscription = null;
  +    });
  +    super.dispose();
     }
   
     @override
  
positive.code:               margin: const EdgeInsets.only(right: 42),
                child: ElevatedButton(
                  child: const Text('Listen'),
                  onPressed: _listenLocation,
                ),
              ),
              ElevatedButton(
                child: const Text('Stop'),
                onPressed: _stopListen,
              )
            ],
          ),
  
negative.code:   final Location location = Location();
  
    LocationData? _location;
    StreamSubscription<LocationData>? _locationSubscription;
    String? _error;
  
    Future<void> _listenLocation() async {
  