     }
     
     
-    fileprivate func polygonToSVG(_ polygon: Macaw.Polygon) -> String {
+    fileprivate func polygonToSVG(_ polygon: Polygon) -> String {
         let points = polygon.points.flatMap { String($0) }.joined(separator: ",")
         return tag(SVGPolygonOpenTag, ["points":points])
     }
     
-    fileprivate func polylineToSVG(_ polyline: Macaw.Polyline) -> String {
+    fileprivate func polylineToSVG(_ polyline: Polyline) -> String {
         let points = polyline.points.flatMap { String($0) }.joined(separator: ",")
         return tag(SVGPolylineOpenTag, ["points":points])
     }
     
-    fileprivate func pathToSVG(_ path: Macaw.Path) -> String {
+    fileprivate func pathToSVG(_ path: Path) -> String {
         var d = ""
         for segment in path.segments {
             d += "\(segment.type) \(segment.data.flatMap { String(Int($0)) }.joined(separator: " "))"

        return tag(SVGPathOpenTag, ["d":d])
    }
    
    fileprivate func lineToSVG(_ line: Macaw.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: Macaw.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: Macaw.Circle) -> String {
        return tag(SVGCircleOpenTag, ["cx":att(circle.cx), "cy":att(circle.cy), "r":att(circle.r)])
    }
    
    fileprivate func roundRectToSVG(_ roundRect: Macaw.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: Macaw.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: Macaw.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: Macaw.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)\""

        return "\(tag) \(attrs) \(closeTag)"
    }
    
    fileprivate func arcToSVG(_ arc: Arc) -> String {
        if (arc.shift == 0.0) {
            return tag(SVGEllipseOpenTag, ["cx":att(arc.ellipse.cx), "cy":att(arc.ellipse.cy), "rx":att(arc.ellipse.rx), "ry":att(arc.ellipse.ry)])
        } else {
