         var result = ""
         let locus = macawShape.formVar.value
         switch locus {
-        case let arc as Macaw.Arc:
+        case let arc as Arc:
             result += arcToSVG(arc)
-        case let polygon as Macaw.Polygon:
+        case let polygon as Polygon:
             result += polygonToSVG(polygon)
-        case let polyline as Macaw.Polyline:
+        case let polyline as Polyline:
             result += polylineToSVG(polyline)
-        case let path as Macaw.Path:
+        case let path as Path:
             result += pathToSVG(path)
-        case let line as Macaw.Line:
+        case let line as Line:
             result += lineToSVG(line)
-        case let ellipse as Macaw.Ellipse:
+        case let ellipse as Ellipse:
             result += ellipseToSVG(ellipse)
-        case let circle as Macaw.Circle:
+        case let circle as Circle:
             result += circleToSVG(circle)
-        case let roundRect as Macaw.RoundRect:
+        case let roundRect as RoundRect:
             result += roundRectToSVG(roundRect)
-        case let rect as Macaw.Rect:
+        case let rect as Rect:
             result += rectToSVG(rect)
         default:
             result += "\(SVGUndefinedTag) locus:\(locus)"

        if let image = node as? Image {
            return imageToSVG(image)
        }
        if let text = node as? Macaw.Text {
            return textToSVG(text)
        }
        return "SVGUndefinedTag \(node)"

        return tag(SVGPathOpenTag, ["d":d])
    }
    
    fileprivate func lineToSVG(_ line: Line) -> String {
        return tag(SVGLineOpenTag, ["x1":String(Int(line.x1)), "y1":att(line.y1), "x2":att(line.x2), "y2":att(line.y2)])
    }
    
    fileprivate func ellipseToSVG(_ ellipse: Ellipse) -> String {
        return tag(SVGEllipseOpenTag, ["cx":att(ellipse.cx), "cy":att(ellipse.cy), "rx":att(ellipse.rx), "ry":att(ellipse.ry)])
    }
    
    fileprivate func circleToSVG(_ circle: Circle) -> String {
        return tag(SVGCircleOpenTag, ["cx":att(circle.cx), "cy":att(circle.cy), "r":att(circle.r)])
    }
    
    fileprivate func roundRectToSVG(_ roundRect: RoundRect) -> String {
        return tag(SVGRectOpenTag, ["rx":att(roundRect.rx), "ry":att(roundRect.ry), "width":att(roundRect.rect.w), "height":att(roundRect.rect.h)])
    }
    
    fileprivate func rectToSVG(_ rect: Rect) -> String {
        return tag(SVGRectOpenTag, ["x":att(rect.x), "y":att(rect.y), "width":att(rect.w), "height":att(rect.h)])
    }
    
    fileprivate func imageToSVG(_ image: Image) -> String {
        return tag(SVGImageOpenTag, ["xlink:href":image.src, "x":att(image.place.dx), "y":att(image.place.dy), "width":String(image.w), "height":String(image.h)], close: true)
    }

    fileprivate func textToSVG(_ text: Text) -> String {
        var result = tag(SVGTextOpenTag, ["x":att(text.place.dx), "y":att(text.place.dy)])
        if let font = text.font {
            result += "font-family=\"\(font.name)\" font-size=\"\(font.size)\""
