     var handles:[Handle] = []
     var guides:[Handle] = []
 
-    init() {
-        self.curve = BezierCurve(start:CGPoint(x:100,y:100), control1:CGPoint(x:150,y:150), end:CGPoint(x:200,y:100))
+    init(_ curve:BezierCurve) {
+        self.curve = curve
         self.handles = self.curve.points.map {
             (p:CGPoint) -> Handle in
             return Handle(position:p)
-            }    
+        }
         self._update()
     }
     

    }
    
    func draw(context:CGContextRef) {
        for p in self.handles {
            context.withColor(CGColor.redColor()) {
                context.strokeCross(CGRect(center:p.position, size:CGSize(w:6, h:6)))
            }
        }
        for p in self.guides {
            context.withColor(CGColor.blueColor()) {
                context.strokeSaltire(CGRect(center:p.position, size:CGSize(w:3, h:3)))
            }
        }

        let points = self.handles.map() {
            (h:Handle) -> CGPoint in
            return h.position
        }
        self.curve = BezierCurve(points:points)

        // Make a cubic and turn its points into guides...
