Support any subclass of a DataFrame