         return -1
     }
     
-    var cleanedUp: [[LineageTree.Node]] {
+    public var cleanedUp: [[LineageTree.Node]] {
         return table.filter{ $0.nodes.count > 0 }.map{$0.nodes}
     }
     
-    init(lineageTree: LineageTree) {
+    public init(lineageTree: LineageTree) {
         let root = lineageTree.rootNode
         parseNode(root, depth: 0)
     }


import Foundation

internal class LineageAlignment {
    
    internal class Pair: CustomDebugStringConvertible {
        var rank: TaxonomicRank? = nil
        var nodes: [LineageTree.Node] = []
        init(rank: TaxonomicRank?) {
            self.rank = rank
        }

        }
    }
    
    public private(set) var table: [Pair] = TaxonomicRank.hierarchy.map { Pair(rank: $0) }
    
    private func currentDepth(for rank: TaxonomicRank) -> Int {
        var i = 0
