more reused code for the superclass