added keep alive feature
implemented location change detection using shortest path comparison