Revised to account for dynamic casts, since objects now virtually inherit parents in key places.