is this really done in the subclasses, not in the base constructor?