Why not do inheritance in the traditional way here? That is, instantiate the subclass instead of the superclass?