         return formatter
     }()
     
-    private var addresses = [Address]()
+    private var _addresses : [Address]!
+    private var addresses : [Address] {
+        get{
+            if _addresses == nil{
+                let addressPath = CacheManager.shared.cacheDirectory().appending("/" + CacheManager.shared.cacheAddressDataFilename())
+                let url = URL(fileURLWithPath: addressPath)
+                if let data = try? Data(contentsOf: url){
+                    if let unarchive = FastCoder.object(with: data) as? [Address]{
+                        _addresses = unarchive
+                        purgeOldAddresses()
+                    }
+                }
+            }
+            if _addresses == nil{
+                _addresses = [Address]()
+            }
+            return _addresses
+        }
+        set{
+            _addresses = newValue
+        }
+    }
+//    private var _travels : [Travel]!
+//    private var travels : [Travel] {
+//        get{
+//            if _travels == nil{
+//                let path = CacheManager.shared.cacheDirectory().appending("/" + CacheManager.shared.cacheTravelsDataFilename())
+//                let url = URL(fileURLWithPath: path)
+//                if let data = try? Data(contentsOf: url){
+//                    if let unarchive = FastCoder.object(with: data) as? [Travel]{
+//                        _travels = unarchive
+//                    }
+//                }
+//            }
+//            if _travels == nil{
+//                _travels = [Travel]()
+//            }
+//            return _travels
+//        }
+//        set{
+//            _travels = newValue
+//        }
+//    }
+    
     public var activities = [String: [VehicleActivity]]()
     private var liveShares = [LiveShare]()
     private var data = [String: Any]()

        }
    }
    
    
}

        }
    }
    
    func purgeOldAddresses() {
        if let addresses = _addresses{
            var diff = _addresses.count - 150
            if diff > 0{
                diff -= 10
                if diff > 0{
                    _addresses = Array(addresses.suffix(from: diff))
                }
            }
        }
    }
    
    // MARK: Logic
    
    ///Merge two trips
