 	*/
 	
 	public func hierholzer() -> [Int]? {
-        guard noEmtpyVertices else { return nil }
         let unEvenVertices = self.unEvenVertices(directed: directed)
 		guard unEvenVertices == 0 || unEvenVertices == 2 else { return nil }
         guard var startv = vertices.first else { return nil }

            
		}
        
        // print(start)
		
        func hierholzer_rec() -> [[Int]]? {
            var subtour = [Int]()
            var tours = [[Int]]()
            var remainingEdges : [Int: Set<Int>] = [:]
            for v in vertices {
                remainingEdges[v] = Set(self[v].map { $0.end })
            }
            var visited : [Int: Set<Int>] = [:]
            var start = startv


                    // print(current, subtour, remainingEdges)
                    guard let next = remainingEdges[current]?.first(where: { self[$0, current] == nil }) ?? remainingEdges[current]?.first else {
                        if end != startv {
                            guard !didSwap else { return nil }
                            didSwap = true
                            swap(&startv, &end)
                            return hierholzer_rec()
                        }
