common ancestor and is_ancestor_of? methods