                                 Draw.drawLine(context, from: pt, to: pt + dv * d );
                             }
         })
-        let demo8 = Demo(title: ".split(t) and .split(t1,t2)",
+        let demo8 = DualDrawFuncDemo(title: ".split(t) and .split(t1,t2)",
                          quadraticControlPoints: [],
                          quadraticDrawFunction: {[unowned self](context: CGContext, demo: Demo) in },
                          cubicControlPoints: controlPoints,

            Draw.drawCircle(context, center: curves[0].points[3], radius: 3, offset: offset)
            Draw.drawCircle(context, center: B, radius: 3, offset: offset)
        })
        let demo3 = Demo(title: ".getLUT(steps)",
                         quadraticControlPoints: quadraticControlPoints,
                         quadraticDrawFunction: {[unowned self](context: CGContext, demo: Demo) in
            let curve = self.draggableQuadraticCurve()
            Draw.drawSkeleton(context, curve: curve)
            let LUT = curve.generateLookupTable(withSteps: 16)
            for p in LUT {
                Draw.drawCircle(context, center: p, radius: 2)
            }
        },
                         cubicControlPoints: controlPoints,
                         cubicDrawFunction: {[unowned self](context: CGContext, demo: Demo) in
            let curve = self.draggableCubicCurve()
            Draw.drawSkeleton(context, curve: curve)
            let LUT = curve.generateLookupTable(withSteps: 16)
            for p in LUT {
                Draw.drawCircle(context, center: p, radius: 2)
            }
        })
        let demo4 = Demo(title: ".length()",
                         //TODO: you still haven't implemented length function or drawText
            quadraticControlPoints: [],
            quadraticDrawFunction: {[unowned self](context: CGContext, demo: Demo) in },

                            outline.offset(distance: -10).curves.forEach(doc)
        })
        
        let demo18 = DualDrawFuncDemo(title: "graduated outlines, using .outline(d1,d2,d3,d4)",
                          quadraticControlPoints: [],
                          quadraticDrawFunction: {[unowned self](context: CGContext, demo: Demo) in },
                          cubicControlPoints: outlinePoints,
