Eliminated a couple of methods by some clever-ish use of recursion.  The class is a lot simpler now.