     
     func testPathBounds2() {
         
-        var pathSegments = [PathSegment]()
-        
-        let segment0 = PathSegment(type: .M, data: [68,
-                                                    101.9])
-        pathSegments.append(segment0)
-        let segment1 = PathSegment(type: .c, data: [1.8,
-                                                    0,
-                                                    3.3,
-                                                    1.5,
-                                                    3.3,
-                                                    3.3])
-        pathSegments.append(segment1)
-        let segment2 = PathSegment(type: .s, data: [-1.5,
-                                                    3.3,
-                                                    -3.3,
-                                                    3.3])
-        pathSegments.append(segment2)
-        let segment3 = PathSegment(type: .H, data: [40.5])
-        pathSegments.append(segment3)
-        let segment4 = PathSegment(type: .c, data: [-1.8,
-                                                    0,
-                                                    -3.3,
-                                                    -1.5,
-                                                    -3.3,
-                                                    -3.3])
-        pathSegments.append(segment4)
-        let segment5 = PathSegment(type: .s, data: [1.5,
-                                                    -3.3,
-                                                    3.3,
-                                                    -3.3])
-        pathSegments.append(segment5)
-        let segment6 = PathSegment(type: .H, data: [68])
-        pathSegments.append(segment6)
-        let segment7 = PathSegment(type: .z, data: [])
-        pathSegments.append(segment7)
-        
-        let path = Path(segments: pathSegments)
+        let path = MoveTo(x: 68, y: 101.9)
+            .c(1.8, 0, 3.3, 1.5, 3.3, 3.3)
+            .s(-1.5, 3.3, -3.3, 3.3)
+            .H(40.5)
+            .c(-1.8, 0, -3.3, -1.5, -3.3, -3.3)
+            .s(1.5, -3.3, 3.3, -3.3)
+            .H(68).Z().build()
         
         let shape = Shape(form: path)
         let stroke = Stroke(fill: Color.black, width: 1.0, cap: .butt, join: .miter, miterLimit: 4.0, dashes: [], offset: 0.0)

    }
    
    func testPathBounds3() {
        var pathSegments = [PathSegment]()
        let segment0 = PathSegment(type: .M, data: [25,
                                                    49.5])
        pathSegments.append(segment0)
        let segment1 = PathSegment(type: .C, data: [38.5309764,
                                                    49.5,
                                                    49.5,
                                                    38.5309764,
                                                    49.5,
                                                    25])
        pathSegments.append(segment1)
        let segment2 = PathSegment(type: .C, data: [49.5,
                                                    11.4690236,
                                                    38.5309764,
                                                    0.5,
                                                    25,
                                                    0.5])
        pathSegments.append(segment2)
        let segment3 = PathSegment(type: .C, data: [11.4690236,
                                                    0.5,
                                                    0.5,
                                                    11.4690236,
                                                    0.5,
                                                    25])
        pathSegments.append(segment3)
        let segment4 = PathSegment(type: .C, data: [0.5,
                                                    38.5309764,
                                                    11.4690236,
                                                    49.5,
                                                    25,
                                                    49.5])
        pathSegments.append(segment4)
        let segment5 = PathSegment(type: .z, data: [])
        pathSegments.append(segment5)
        let path = Path(segments: pathSegments)
        let shape = Shape(form: path)
        let stroke = Stroke(fill: Color.black, width: 1.0, cap: .butt, join: .miter, miterLimit: 4.0, dashes: [], offset: 0.0)
        shape.stroke = stroke

    }
    
    func testPathBounds1() {
        
        let path = MoveTo(x: 101.9, y: 40.5)
            .c(0, -1.8, 1.5, -3.3, 3.3, -3.3)
            .s(3.3, 1.5, 3.3, 3.3)
            .v(27.4)
            .c(0, 1.8, -1.5, 3.3, -3.3, 3.3)
            .s(-3.3, -1.5, -3.3, -3.3)
            .V(40.5).Z().build()
        
        let shape = Shape(form: path)
        
