Refactored again to avoid compromising hierarchical structure.
Graph-specific code now moved out of abstract class and into static
helper class.  All unit tests pass.