     func updateViews() {
         var unvisited = Set(layers.keys)
         var depth = 0
-        visitNodes(hierarchy.roots, parent : bodyLayer, selectable : true, depth : &depth, marking : &unvisited)
+        visitNodes(hierarchy.roots, parent : nil, depth : &depth, marking : &unvisited)
         for node in unvisited {
             if let layer = layers[node] {
                 layer.removeFromSuperlayer()

                for (key, value) in record.renderingInfo.contentValues {
                    layer.contentLayer.setValue((value as? NSNull) == nil ? value : nil, forKey: key as! String)
                }
                layer.hidden = layer.contentLayer.hidden || parent.hidden
                for(key, value) in record.renderingInfo.geometryValues {
                    layer.setValue(value, forKey: key as! String)
                }
                
                layer.borderLayer.transform = layer.contentLayer.transform
                
                visitNodes(record.children as! [NSString], parent : layer, selectable : layer.selectable, depth : &depth, marking: &marking)
                if depth > 0 {
                    // Add a small fudge factor so siblings are properly ordered
                    zPos += 0.001

                layer.record = record
                marking.remove(node)
                layers[node] = layer
                parentLayer.addSublayer(layer)
                layer.selectable = record.selectable && (parent?.selectable ?? true)
                
                layer.hierarchyDepth = currentDepth
                
