new abstract class changes