pre-class version