reference as abstract class