     public private(set) var next: Vertex! = nil
     public private(set) weak var previous: Vertex! = nil
     public private(set) var nextTransition: VertexTransition! = nil
-    public private(set) var previousTransition: VertexTransition! = nil
     
     public func setNextVertex(_ vertex: Vertex, transition: VertexTransition) {
         self.next = vertex
         self.nextTransition = transition
     }
     
-    public func setPreviousVertex(_ vertex: Vertex, transition: VertexTransition) {
+    public func setPreviousVertex(_ vertex: Vertex) {
         self.previous = vertex
-        self.previousTransition = transition
     }
     
     init(location: CGPoint, isIntersection: Bool) {

    }
    
    public func emitPrevious() -> BezierCurve {
        return self.emitTo(previous.location, using: previousTransition)
    }
}


        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)
        // return list of vertexes that point to the start of each element
        return elements
    }
