 		let primitive = IndexedRenderPrimitive(vertices: vertices,
 																						indices: indices, scalarAttribs: scalars,
 																						color: rank.hashColor.tuple(),
-																						ownerHash: container.hashValue,
+																						ownerHash: container.hashValue,	// The hash of the owning region
 																						debugName: "\(container.name) - poi plane @ \(rank)")
-		return PoiPlane(primitive: primitive, rank: rank, toggleTime: Date())
+		return PoiPlane(primitive: primitive, rank: rank)
 	}
 }
-	
+
+// $ Put this extension on GeoPlaceContainer instead
 extension GeoRegion {
 	func poiRenderPlanes() -> [PoiPlane] {
 		return sortPlacesIntoPoiPlanes(places, in: self);

		let openRegions = regions.filter { userState.placeVisited($0) }
		let closedRegions = regions.subtracting(openRegions)
		
		let visibleContinentPoiPlanes = closedContinents.map { ($0.hashValue, $0.poiRenderPlanes()) }
		let visibleCountryPoiPlanes = closedCountries.map { ($0.hashValue, $0.poiRenderPlanes()) }
		let visibleRegionPoiPlanes = closedRegions.map { ($0.hashValue, $0.poiRenderPlanes()) }
		let visiblePoiPlanes = visibleContinentPoiPlanes + visibleCountryPoiPlanes + visibleRegionPoiPlanes
		
		// Insert them into the primitive dictionary, ignoring any later duplicates
		regionPrimitives = Dictionary(visiblePoiPlanes, uniquingKeysWith: { (l, r) in l + r } )
	}
	
	deinit {

	func updatePrimitives<T:GeoNode>(for node: T, with subRegions: Set<T.SubType>)
		where T.SubType : GeoPlaceContainer {
		if AppDelegate.sharedUserState.placeVisited(node) {
			let removedRegionsHash = node.hashValue
			regionPrimitives = regionPrimitives.filter { $0.ownerHash != removedRegionsHash }
			let subregionPrimitives = subRegions.flatMap { $0.poiRenderPlanes() }
			regionPrimitives.append(contentsOf: subregionPrimitives)
		}
	}
	
	func updateZoomThreshold(viewZoom: Float) {
		let previousPois = Set(regionPrimitives.filter { Float($0.rank) <= rankThreshold })
		let visiblePois = Set(regionPrimitives.filter { Float($0.rank) <= viewZoom })

		let A = previousPois.subtracting(visiblePois)	// Culled this frame
		let B = visiblePois.subtracting(previousPois) // Shown this frame
