More spreading logic across class hierarchy