Change core controller/model class to abstract class