         let lastCurve = self.curves.last!
         lastVertex.setNextVertex(firstVertex, transition: VertexTransition(curve: lastCurve))
         // connect the backward reference of the first vertex to the last vertex
-        firstVertex.setPreviousVertex(lastVertex, transition: VertexTransition(curve: lastCurve.reversed()))
+        firstVertex.setPreviousVertex(lastVertex)
         // return list of vertexes that point to the start of each element
         return elements
     }

            // set the forwards reference for starting vertex of curve i-1
            lastVertex.setNextVertex(v, transition: VertexTransition(curve: curveForTransition))
            // set the backwards reference for starting vertex of curve i
            v.setPreviousVertex(lastVertex, transition: VertexTransition(curve: curveForTransition.reversed()))
            // point previous at v for the next iteration
            lastVertex = v
        }

            let element1 = element.split(from: t0, to: t)
            let element2 = element.split(from: t, to: t1)
            // insert the vertex into the linked list
            v.setPreviousVertex(start)
            v.setNextVertex(end, transition: VertexTransition(curve: element2))
            start.setNextVertex(v, transition: VertexTransition(curve: element1))
            end.setPreviousVertex(v)
        }
        
        assert(v.isIntersection)
