reduce number of generate super$ methods