do we need to subclass all the constructors?