Switched *Descendant classes to declare getAncestor*() methods, tagged
interfaces as appropriate, and added implementations