Simplified by using methods on common superclasses.