abstract class changes