Should this actually be a member of a (new) common superclass?  I don't feel too strongly, but functions like this suggest maybe we don't have the right class hierarchy.