         let demo4 = Demo(title: ".length()",
                          controlPoints: controlPoints,
                          quadraticDrawFunction: { (context: CGContext, demo: Demo) in },
-                         cubicDrawFunction: { (context: CGContext, demo: Demo) in
-                            let curve = CubicBezier( p0: self.draggables[0].bkLocation,
-                                                     p1: self.draggables[1].bkLocation,
-                                                     p2: self.draggables[2].bkLocation,
-                                                     p3: self.draggables[3].bkLocation
-                            )
+                         cubicDrawFunction: {[unowned self] (context: CGContext, demo: Demo) in
+                            let curve = self.draggableCubicCurve()
                             Draw.drawSkeleton(context, curve: curve)
                             Draw.drawCurve(context, curve: curve)
                             Draw.setColor(context, color: Draw.red)

        let demo5 = Demo(title: ".get(t) and .compute(t)",
                         controlPoints: controlPoints,
                         quadraticDrawFunction: { (context: CGContext, demo: Demo) in },
                         cubicDrawFunction: { (context: CGContext, demo: Demo) in
                            let curve = CubicBezier( p0: self.draggables[0].bkLocation,
                                                  p1: self.draggables[1].bkLocation,
                                                  p2: self.draggables[2].bkLocation,
                                                  p3: self.draggables[3].bkLocation
                            )
                            Draw.drawSkeleton(context, curve: curve)
                            Draw.drawCurve(context, curve: curve)
                            Draw.setColor(context, color: Draw.red)

        let demo3 = Demo(title: ".getLUT(steps)",
                        controlPoints: controlPoints,
                         quadraticDrawFunction: { (context: CGContext, demo: Demo) in },
                         cubicDrawFunction: {[unowned self] (context: CGContext, demo: Demo) in
            let curve = self.draggableCubicCurve()
            Draw.drawSkeleton(context, curve: curve)
            let LUT = curve.generateLookupTable(withSteps: 16)
            
