 
 public extension CGPath {
     func enumerate(block:(type:CGPathElementType, points:[CGPoint]) -> Void) {
-        var curpt  = CGPoint()
+        var curpt = CGPoint()
+        var start = curpt
         
         CGPathApplyWithBlock(self) {
             (elementPtr:UnsafePointer<CGPathElement>) -> Void in

                curpt = points[3]
            
            case kCGPathElementCloseSubpath.value:
                block(type:kCGPathElementCloseSubpath, points:[curpt, self.getPoint(0)!])
            default:
                println("default")
            }

            switch element.type.value {
            case kCGPathElementMoveToPoint.value:
                curpt = element.points.memory
                start = curpt
                block(type:kCGPathElementMoveToPoint, points:[curpt])
                
            case kCGPathElementAddLineToPoint.value:
